c++中vector如何存储结构体数据呀,请教?????

时间:2022-06-26 04:20:09
我想用vector存储很多结构体数据,在vc++6.0环境下,可是老是编译通不过,怎么回事呀?
源程序如下:

#include <iostream>
#include <vector>
using namespace std;
void main(void)
{
typedef struct arr{
int a;
char b[10];
}Arr;

vector<Arr>value[10];
}

非常简单,可就是老是出错,什么linkage错误,请教请教????
怎么用vector存储结构体数据????


9 个解决方案

#1


#include <iostream>
#include <vector>
using namespace std;
typedef struct arr{
int a;
char b[10];
}Arr;

void main(void)
{

vector<Arr>value[10];
}


you try it:-)

typedef usually is put outside the main function body

#2


同上!

#3


typedef好像不太好放在main函数中吧。
你用过PASCAL?

#4


vector<Arr>value[10];

   vector<Arr> value(10);
   
   这是可变数组

   vector<Arr> value;
   value.push_back(arr1);
   value.push_back(arr2);
   value[1]即为arr2的内容(已经copy)

   参考 资料,不再祥述

#5


谢谢,我试试看

#6


再问一问,vector<Arr>value[10];

   vector<Arr> value(10);两者有什么区别?

#7


如何访问vector中的数据成员:
#include <iterator>
#include <vector>
#include <iostream>
typedef struct arr{
int a;
int b;
}ARR;
int main( )
{
   using namespace std;
   int i;

   typedef vector<ARR>TT;
   TT arr1;
   ARR aa;
   aa.a=1;
   aa.b=2;
  
   for(i=1;i<6;i++)
   {
   arr1.push_back(aa);
   }
   vector<ARR>::iterator v;
   cout<<"the arr1 is"<<endl;
   for(v=arr1.begin();v!=arr1.end();v++)
   cout<< *v->a <<" "<<*v->b<<" ";
   cout<<endl;
}
我的目的是打印出成员变量的值,编译时出错,*v->a    这样行吗?

#8


   cout<< *v->a <<" "<<*v->b<<" ";
     change the following statement:
   cout<< v->a <<" "<<v->b<<" ";

you try it again:-)

#9


vector<Arr>value[10];  //定义一个vector<Arr>数组value,它有10个元素
vector<Arr> value(10); //定义一个vector<Arr>变量value,用10初始化它

#1


#include <iostream>
#include <vector>
using namespace std;
typedef struct arr{
int a;
char b[10];
}Arr;

void main(void)
{

vector<Arr>value[10];
}


you try it:-)

typedef usually is put outside the main function body

#2


同上!

#3


typedef好像不太好放在main函数中吧。
你用过PASCAL?

#4


vector<Arr>value[10];

   vector<Arr> value(10);
   
   这是可变数组

   vector<Arr> value;
   value.push_back(arr1);
   value.push_back(arr2);
   value[1]即为arr2的内容(已经copy)

   参考 资料,不再祥述

#5


谢谢,我试试看

#6


再问一问,vector<Arr>value[10];

   vector<Arr> value(10);两者有什么区别?

#7


如何访问vector中的数据成员:
#include <iterator>
#include <vector>
#include <iostream>
typedef struct arr{
int a;
int b;
}ARR;
int main( )
{
   using namespace std;
   int i;

   typedef vector<ARR>TT;
   TT arr1;
   ARR aa;
   aa.a=1;
   aa.b=2;
  
   for(i=1;i<6;i++)
   {
   arr1.push_back(aa);
   }
   vector<ARR>::iterator v;
   cout<<"the arr1 is"<<endl;
   for(v=arr1.begin();v!=arr1.end();v++)
   cout<< *v->a <<" "<<*v->b<<" ";
   cout<<endl;
}
我的目的是打印出成员变量的值,编译时出错,*v->a    这样行吗?

#8


   cout<< *v->a <<" "<<*v->b<<" ";
     change the following statement:
   cout<< v->a <<" "<<v->b<<" ";

you try it again:-)

#9


vector<Arr>value[10];  //定义一个vector<Arr>数组value,它有10个元素
vector<Arr> value(10); //定义一个vector<Arr>变量value,用10初始化它