vector类型定义类的对象
primer 中写到 :
vector<int> ivec ;
vector<sales_item> sales_vec;
上面的第一个定义类型是vector<int> ,该类型是含有若干int类型对象的vector,变量名是ivec, //这句话可以理解
第二个定义的变量名是sales_vec它所保存的元素是sales_item类型的对象 --这句话该如何理解呢 ?
于是我做了以下尝试
- C/C++ code
#include <string>#include <vector>#include <iostream>using namespace std;int main(){ class fi{ public: string s(string m){ return m; } }; vector<fi> n; cout<<n.s("jinling"); return 0;}
编译明显出现错误,请问这是什么情况?该如何正确使用自定义类的vector对象?
[解决办法]
楼主,你就是把vector当成数组也没有这么用的
你这样定义一个数组:fi n[20];
你会这样用吗:n.s;
再说你这个vector没有初始化
楼主看下vector怎么添加元素,怎么初始化,就明白了
[解决办法]
- C/C++ code
#include <string>#include <vector>#include <iostream>using namespace std; class fi{//定义类要放到全局 public: string s(string m){ return m; } };int main(){ vector<fi> n; fi f;//实例化一个fi类型的对象 f n.push_back(f);//将f放入容器n中。 cout<<n[0].s("jinling") << endl;//n[0]是访问容器的第一个元素,也就是f ,f.s("jingling")调用了类的成员函数 s,返回"jinling" 使用cout输出这个返回值 return 0;}
[解决办法]
cout<<n.s("jinling");
error C2039: 's' : is not a member of 'std::vector<_Ty>
s不是vector的成员函数
回去好好看看vector他是容器,不是你那么用的