...
..
.deque<int>dq(10);
deque<int>::iterator siter=dq.begin();
deque<int>::iterator eiter=dq.end();
while(siter!=dq.end())
{
cout<<*siter<<endl;
siter++;
}list<int>ilist(dq.begin(),dq.end())...这里不能这样进行初始化。是不是用迭代器初始化,一定要被初始化的与要初始化的容器类型一致?
..
.deque<int>dq(10);
deque<int>::iterator siter=dq.begin();
deque<int>::iterator eiter=dq.end();
while(siter!=dq.end())
{
cout<<*siter<<endl;
siter++;
}list<int>ilist(dq.begin(),dq.end())...这里不能这样进行初始化。是不是用迭代器初始化,一定要被初始化的与要初始化的容器类型一致?
list的迭代器去初始化vector,没有问题vector的迭代器初始化list,就有同样的问题
vector<int> x(10);
list<int> y( x.begin() , x.end() );
完全没问题,应该是你用的stl版本的问题。
void veclist();
//..vector初始化deque
void vecdeque();void veclist()
{
vector<int>v1;
v1.push_back(900);
v1.push_back(901);
v1.push_back(902);
list<int>l1(v1.begin(),v1.end()); list<int>::iterator iter=l1.begin(); while(iter!=l1.end())
{
cout<<*iter<<endl;
iter++;
}
}void vecdeque()
{
vector<int>v1;
v1.push_back(900);
v1.push_back(901);
v1.push_back(902); deque<int>dq(v1.begin(),v1.end());
deque<int>::iterator iter=dq.begin();
while(iter!=dq.end())
{
cout<<*iter<<endl;
iter++;
}}
void main()
{
//vecinit();ok
//listinit();ok
//dequeinit();ok
//veclist();ok
//vecdeque();error return;
}