容器中的assign函数问题,谢谢
#include<iostream>
#include<vector>
#include<list>
#include<string>
using namespace std;
int main()
{
list<char *> clis;
char *a;
while(true)
{
a = new char[100];
cin >> a;
if(strcmp(a, "jiaoyang") == 0)
{
break;
}
clis.push_back(a);
}
for(list<char*>::iterator llt = clis.begin(); llt != clis.end(); ++llt)
{
cout << *llt << " ";
}
cout << endl;
vector<string> svec;
svec.assign(clis.begin(), clis.end());//这里出错。。。
return 0;
}
对于assign函数:允许把一个容器中的元素赋给另一个不同类型的容器。。。且如果容器内的元素类型不同,但只要是兼容的就行。。。。。那么我svec.assign(clis.begin(), clis.end());就不应该有问题啊????怎么会出错呢?。。
难道是编译器问题。。。。我用的是VC6
[解决办法]
楼主果断的换新的VS吧,VC6那么古老的东西了,和标准不一样的。会误人子弟的哦。VS2008下果断的通过了,没有任何错误。