【list/deque遍历】又是因为vs 2008编译不通过,想不出哪有问题??list/deque遍历

Crazy_hand 2009-07-13 12:19:53
下面的代码,DEV-C++没问题,vs 2008报错

/*
Detail: 编写程序处理一个string 类型的list容器。在该容器中寻找一个特殊值
如果找到,则将它删除掉。用deque重写。
Date: 2009年 7月 12日 22时 16分 37秒 星期日
*/
#include <iostream>
#include <list>
#include <deque>
#include <algorithm>
#include <cstdlib>

using namespace std;

int main ( void )
{
char * c_strTest[] = { "haha","gao","yan","xiao" };
list<string> lst_strTest( c_strTest, c_strTest + 4 );
deque<string> deq_strTest( c_strTest, c_strTest + 4 );

list<string>::iterator lst_strIndex = find( lst_strTest.begin(), lst_strTest.end(), "yan" );
deque<string>::iterator deq_strIndex = find( deq_strTest.begin(), deq_strTest.end(), "gao" );

if( lst_strIndex != lst_strTest.end() )
lst_strTest.erase( lst_strIndex );
if( deq_strIndex != deq_strTest.end() )
deq_strTest.erase( deq_strIndex );

//list<string>::iterator lst_strPut = lst_strTest.begin();
//deque<string>::iterator deq_strPut = deq_strTest.begin();

cout << "lst_strTest:" << endl;
//while( (lst_strPut++) != lst_strTest.end() )
// cout << *lst_strPut << endl;
for(list<string>::iterator lst_strPut = lst_strTest.begin();
lst_strPut != lst_strTest.end();
++lst_strPut )
cout << *lst_strPut << endl;///////////////////////////////////这句报错,信息在最下面
cout << "------------------------------------" << endl;

//cout << "deq_strTest:" << endl;
//while( (deq_strPut++) != deq_strTest.end() )
// cout << *deq_strPut << endl;
//cout << "------------------------------------" << endl;

system( "pause" );
return 0;
}
//error C2679: 二进制“<<”: 没有找到接受“std::basic_string<_Elem,_Traits,_Ax>”类型的右操作数的运算符 (或没有可接受的转换)
...全文
172 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
windsting 2009-07-13
  • 打赏
  • 举报
回复
试试添加一行:

#include <string>


希望这样能解决你的问题。

64,682

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧