如何用vector定义string类型的指针变量
我正在学习C++ PRIMER,第五章有个5.18题目,说要定义一个vector对象,每个元素都是指向string类型的指针
我用了以下两种方式,VC++ 6.0都提示错误了:
#include <vector>
using std::vector;
......
string s1("I am Aka");
1/ vector<string *> sp(&s1);
2/ vector<sting> *sp(&s1);
求大侠指教。
[解决办法]
写错鸟
vector<sting*> sp;
sp.push_back(&s1);
[解决办法]
VS6.0对于模板甚至C++标准都有支持不完善之处,换GCC或者更高版本的VS
一般使用模板——特别是标准库——时<和>要注意两边留个空格,否则很容易凑成<<和>>操作符
2/的string写成了sting,而且该语句定义的是一个指向vector的指针,不能这么初始化
此外,string也是std命名空间里的,你using了吗
[解决办法]
error C2653: 'vector<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > *,class std::allocator<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > *> >' : is not a class or namespace name
[解决办法]
#include <iostream>#include <vector>#include <string>using namespace std;int main(){ vector<string *> svec; string s1 = "hello "; string s2 = "c++!"; svec.push_back(&s1); svec.push_back(&s2); vector<string *>::iterator itr; for (itr = svec.begin(); itr != svec.end(); ++itr) cout << **itr; return 0;}
[解决办法]
vs2008 output:
hello c++!
楼主如果学习STL的话,最好换用vc2008或者更新的版本
[解决办法]