读书人

关于DEQUE器皿的初始化

发布时间: 2013-01-06 15:44:47 作者: rapoo

关于DEQUE容器的初始化
#include <iostream>
#include <list>
#include <string>
#include <deque>
using namespace std;
int main()
{string a[]={"1","2","3","4","5","4","6","7","7"};
std::deque<string> de(a,a+9);
for(deque<string>::iterator it=de.begin();it!=de.end();++it)
if(*it=="4")
{it=de.erase(it);
--it;
}

for(it=de.begin();it!=de.end();++it)
cout<<*it<<endl;
return 0;
}
这段代码编译无法通过,,,
Documents and Settings\啊啊啊\桌面\c&c++实例\9.27.cpp(8) : error C2664: '__thiscall std::deque<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator<class std::basic_string<char,struct std::c
har_traits<char>,class std::allocator<char> > > >::std::deque<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::allocato
r<char> > > >(unsigned int,const class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > &,const class std::allocator<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > &)' : can
not convert parameter 1 from 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > [9]' to 'unsigned int'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast
[解决办法]


int main()
{
string a[]={"1","2","3","4","5","4","6","7","7"};
deque <string> de;
for(int i=0;i<9;i++)
{
cout<<a[i]<<endl;
de.push_back(a[i]);
}
for(deque <string>::iterator it=de.begin();it!=de.end();++it)
if(*it=="4")
{
it=de.erase(it);
--it;
}

for(it=de.begin();it!=de.end();++it)
cout <<*it <<endl;
return 0;
}

[解决办法]
引用:
。。这是C++PRIMER上说的,可能C++PRIMER上不是说的很清楚,那为什么LIST和VECTOR都可以用内置数组的一对指针来初始化,而DEQUE不行呢
我怀疑是不是编译器的关系,我用的是VC6.0

编不过的确是编译器的问题

读书人网 >C++

热点推荐