首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

vector门类定义类的对象

2012-06-22 
vector类型定义类的对象primer 中写到 :vectorint ivec vectorsales_item sales_vec上面的第一个定

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他是容器,不是你那么用的

热点排行