用devcpp的请进,有问题请教

killme6115 2003-10-22 04:11:43
顺序容器vector 类中的at()方法为什么不能用??try.....catch也不能用,大家的怎么样??
这是编译器问题吗??想问问大家使用的时候可以吗?还是只是我的系统问题。代码如下:
#include<iostream>
#include<vector>
#include<conio.h>
#include<exception>
#include<algorithm>
using namespace std;

int main()
{ const int size=6;
int a[size]={1,2,3,4,5,6};
vector<int> v(a,a+size);
ostream_iterator<int> output(cout," ");
cout<<"Vector v contais:";
copy(v.begin(),v.end(),output);
cout<<"\nFirst element of v:"<<v.front();
cout<<"\nLast element of v:"<<v.back();

v[0]=7;
v[1]=10;
v.insert(v.begin()+1,22);
cout<<"\nContents of v after changed:";
copy(v.begin(),v.end(),output);
try
{ v.at(100)=77;
}
catch(out_of_range e)
{ cout<<"\nException:"<<e.what();
}
v.erase(v.begin());
cout<<"\nContents of v after erase is:";
copy(v.begin(),v.end(),output);

v.erase(v.begin(),v.end());
cout<<"\nAfter earse,vector v:"
<<(v.empty()?"is":"is not")<<" empty."<<endl;
v.insert(v.begin(),a,a+size);
cout<<"Contents before clear:";
copy(v.begin(),v.end(),output);
v.clear();
cout<<"\nAfter clear,vector v "
<<(v.empty()?"is":"is not")<<" empty."<<endl;
getch();
return 0;
}
出错信息如下
no matching function for call to `vector<int,allocator<int> >::at (int)'

parse error before `e'

confused by earlier errors, bailing out
这是《c++大学教程》里面的一个例子



...全文
46 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
bbcallen 2003-10-22
  • 打赏
  • 举报
回复
和try catch没有关系
而是说dev c++根本就没有提供这个函数
至少没有在你所用版本的头文件中提供
killme6115 2003-10-22
  • 打赏
  • 举报
回复
难道 try......catcha也不行吗??
bbcallen 2003-10-22
  • 打赏
  • 举报
回复
补充:据说没有100%支持标准C++的编译器
bbcallen 2003-10-22
  • 打赏
  • 举报
回复
今天我看了看Dev C++的vector头文件,发现里面没有at()这个方法
而在VC.net的头文件里面倒是有这个方法
所以换个库试试
killme6115 2003-10-22
  • 打赏
  • 举报
回复
自己顶
没人回答吗????

24,856

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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