源程序如下:
#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
#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?
你用过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)
参考 资料,不再祥述
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);两者有什么区别?
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 这样行吗?
#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:-)
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初始化它
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
#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?
你用过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)
参考 资料,不再祥述
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);两者有什么区别?
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 这样行吗?
#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:-)
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初始化它
vector<Arr> value(10); //定义一个vector<Arr>变量value,用10初始化它