关于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
[解决办法]
- C/C++ code
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; }
[解决办法]