对于vector的一些用法,很奇怪

spysoos 2009-02-14 12:25:48
string cWord[6] = { "sdf", "sdfds", "sdf", "fsdf", "fsdf", "fsdf"};
vector<string> svec(cWord, cWord+6);
vector<string>::iterator I = svec.begin()+3;
if(!(I->empty()))
{
cout << *I << endl;
}
用法是正确的,但是下面就不正确

int a[7] = {0, 1, 2, 3, 4, 5, 6};
vector<int> ivec(a, a+7);
vector<int>::iterator I = ivec.begin()+3;
if(!(I->empty()))
{
cout << *I << endl;
}
错误码是"error C2227: left of '->empty' must point to class/struct/union"
这是为什么?
...全文
73 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
spysoos 2009-02-14
  • 打赏
  • 举报
回复
这的效率真高
spysoos 2009-02-14
  • 打赏
  • 举报
回复
哦.......知道了三位.新来的,分不多,只有20分现在,不能多给,sorry
hangyu628 2009-02-14
  • 打赏
  • 举报
回复
int string...
szqh97 2009-02-14
  • 打赏
  • 举报
回复
第一个程序你也是很侥幸没有编译错误啊,
int是内置的数据类型
string是类
baihacker 2009-02-14
  • 打赏
  • 举报
回复
注意一下iterator的->运算...注意这个运算后的表达式的类型是什么...

65,210

社区成员

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

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