关于vector存指针的问题
程序代码:
#include <iostream> #include <string> #include <vector> #include <list> using namespace std; int main() { char* ia[]={"marry","mirst","vector","list"}; list<char*> lst(ia,ia+4); vector<string> vec; for(list<char*>::iterator it=lst.begin();it!=lst.end();it++) { string str; str=**it; cout<<"*it : "<<**it<<endl; vec.push_back(str); } for(vector<string>::iterator it=vec.begin();it!=vec.end();it++) { cout<<"it : "<<*it<<endl; } return 0; }
在上述代码中,我想把list中的对象复制到vector中,list保的是char*,为什么我用**it得到的只是每个字符串的首字母,而*it得到的才是字符串。
我的理解是list中存的都是每个字符串的地址,所以*it得到的是地址,而**it才能得到字符串,这样理解有什么问题吗,请大家指点下。谢谢!