![]() |
#2
rjsp2015-06-03 21:35
|

#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;
}
#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才能得到字符串,这样理解有什么问题吗,请大家指点下。谢谢!