vector中的begin和end函数返回的是什么东西啊?

zjfhgdx 2008-12-24 08:48:24
vector中的begin和end函数返回的是什么东西啊?

typename vector::const_iterator constIterator; //这句是什么意思?

constIterator=vetor.begin();//它里面到底做了些什么?是不是constInterator对vector做了引用?
...全文
1756 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoyisnail 2008-12-24
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 zjfhgdx 的回复:]
引用 8 楼 xiaoyisnail 的回复:
typename就是告诉编译器把后面的名字当成一个类型来对待


这个前几楼的朋友说了,但是书上的例子中,有几句用了typename但有几句没有用,这就把的搞糊涂了。

const_iterator用了
const_reverse_iterator没有用。

哦,前者是在一个函数中,后者是在main函数中。

为什么?
[/Quote]

就是在想把一个名字声明为类型名的时候用啊,不想用就不用,当然有一些情况是必须用来显示的告诉编译器后面的是类型,你把你看到的代码贴出来看看吧
matrixdwy 2008-12-24
  • 打赏
  • 举报
回复
返回的是好东西^^
zjfhgdx 2008-12-24
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 xiaoyisnail 的回复:]
typename就是告诉编译器把后面的名字当成一个类型来对待
[/Quote]

这个前几楼的朋友说了,但是书上的例子中,有几句用了typename但有几句没有用,这就把的搞糊涂了。

const_iterator用了
const_reverse_iterator没有用。

哦,前者是在一个函数中,后者是在main函数中。

为什么?
xiaoyisnail 2008-12-24
  • 打赏
  • 举报
回复
typename就是告诉编译器把后面的名字当成一个类型来对待
zjfhgdx 2008-12-24
  • 打赏
  • 举报
回复
typename这个关键字什么时候用,什么时候不需要呢?


我在书的例子,有几句用了,有几句没有用。不理解
zedzhao 2008-12-24
  • 打赏
  • 举报
回复
有点类似数组下标 begin指向开头 end指向最后
moxsone 2008-12-24
  • 打赏
  • 举报
回复
就象指针指向了数组的第一个元素.
九桔猫 2008-12-24
  • 打赏
  • 举报
回复
迭代器

迭代器这个东西在STL中使用十分普遍,相对于指针增强版
ljmscsq 2008-12-24
  • 打赏
  • 举报
回复
begin()和end()返回的是一个迭代器,迭代器类似一个指向vector中元素的指针

给你举个使用的例子

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;

int main()
{
vector<string> vec1;
vec1.push_back("a");
vec1.push_back("b");
vector<string>::iterator it;
for(it=vec1.begin();it!=vec1.end();it++)
{
cout<<*it<<endl;
}

it=find(vec1.begin(),vec1.end(),"a");
if(it!=vec1.end())
{
cout<<"find"<<endl;
}
else
{
cout<<"not found"<<endl;
}

return 0;
}

nullah 2008-12-24
  • 打赏
  • 举报
回复
Typename关键字 告诉编译器把一个特殊的名字解释成一个类型

constIterator=vetor.begin();//vector.begin()returns an iterator to the beginning of the vector
xiaoyisnail 2008-12-24
  • 打赏
  • 举报
回复
begin和end都返回迭代器,begin返回指向容器第一个元素的迭代器,end返回指向容器最后一个元素后面位置的迭代器

typename vector::const_iterator constIterator; //声明一个模板内部的类型名

constIterator=vetor.begin();//错误,constIterator是个类型,应该是constIterator iter = vetor.begin();

65,186

社区成员

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

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