现在定义一个迭代器:vector<int>::iterator it = a.begin(); it != a.end(); ++it

我想得到当前it指向的是数组中的第几个元素,就是当前数组的下标,请问有什么函数可以实现嘛?

你可以使用if(*it == n)
{num++;}使用num判断是vector的第几个元素。
一般没这么用的vetor的成员函数可以实现你想要的数据
begin() 返回指向map头部的迭代器
clear() 删除所有元素
count() 返回指定元素出现的次数
empty() 如果map为空则返回true
end() 返回指向map末尾的迭代器
equal_range() 返回特殊条目的迭代器对
erase() 删除一个元素
find() 查找一个元素
get_allocator() 返回map的配置器
insert() 插入元素
key_comp() 返回比较元素key的函数
lower_bound() 返回键值>=给定元素的第一个位置
max_size() 返回可以容纳的最大元素个数
rbegin() 返回一个指向map尾部的逆向迭代器
rend() 返回一个指向map头部的逆向迭代器
size() 返回map中元素的个数
swap() 交换两个map
upper_bound() 返回键值>给定元素的第一个位置
value_comp() 返回比较元素value的函数
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-07-26
一种是简单点方法,最简单的方法,迭代器动的时候,sum++放在循环里,返回sum就好了,sum 的类型可以是size_t 或者int也行。追问

我的意思是这个it有没有一个函数可以得到当前元素在数组中的位置,也就是有没有一个定位函数。

追答

应该是没有的,可以返回iterator const_iterator 实在不行就和begin()相减吧。

本回答被提问者采纳
第2个回答  2011-07-26
it - a.begin() 得到一个 difference_type (signed integral type),由vector<int>决定
第3个回答  2011-07-26
it-a.begin()
第4个回答  2011-07-26
it - a.begin();

现在定义一个迭代器:vector<int>::iterator it = a.begin(); it !=...
{num++;}使用num判断是vector的第几个元素。一般没这么用的vetor的成员函数可以实现你想要的数据 begin() 返回指向map头部的迭代器 clear() 删除所有元素 count() 返回指定元素出现的次数 empty() 如果map为空则返回true end() 返回指向map末尾的迭代器 equal_range() 返回特殊条目的迭代器对 erase...

vector<string>
for(vector<string>::iterator i=a.begin();i!=a.end();i++) 要使用迭代器 iterator 使用vexctor容器必须包含”vector”头文件,然后创建一个vector容器对象(方式很多种,这里就不一一介绍了,具体看实例 :D),然后我们对vector容器初始化赋值(可以使用push_back在容器尾端加入元素),如果我们要对vecto...

c++内嵌类可以用来干什么
class::subclass 可以防止同名混淆,也可以使用父类的私有成员 例:stl迭代器 vector<int>::iterator it;for (it = v.begin(); it != v.end(); it++)cout << *it;私有的就是只能自己用的,免得混乱 保护的就是继承类也可以用

C++ vector如何返回某一位置的迭代器?
vector<int>::iterator it;it = a.begin()+4;it = advance(a.begin(), 4);it = next(a.begin(), 4);

QT迭代器 QVector<int>::iterator it;
it前面加个*试试:m_thSubmit->m_VSAllSelNo.push_back(*it);

c++stl vector怎么用迭代器遍历
vector<int> abc = { 1, 2, 3, 4, 5, 6, 7 };for(vector<int>::iterator i = abc.begin(); i != abc.end(); ++i){ \/\/ 用 *i 获取遍历到的值}

c++内嵌类可以用来干什么
比如你先定义一个点的类class point,然后要定义一条线段class line,用两个端点来表示,就可以在line类里定义两个私有的point类成员p1,p2,这就完成了类的嵌套,相应的还可以用继承派生来做

c++ vector能放多少
C++ 的vector能放多少和数据的类型有关系vector<int> vec的最多能放1073741823个。include <iostream>#include <vector>using namespace std;int main(){ vector<int> vec; cout << vec.max_size(); return 0;}你可以把<int>改成不同的数据类型看看它的max_size()是多少 ...

C++ multiset<int>::iterator it; 是什么意思?
定义一个 指向 multiset<int>类型的 迭代器 it 可以理解为定义一个指向multiset<int>类型元素的指针

一道基础C语言题,求解,最好附上这部分的知识点(通俗易懂点)。
for(vector<int>::iterator iter=ivec.begin();iter!=ivec.end();++iter,++tp) *tp=*iter; \/\/释放动态数组的内存 delete[] pia; return 0;}习题4.29 对本小节第五条框中的两段程序:a.解释这两个程序实现什么功能?b.平均来说,使用string类型的程序执行速度要比用C风格字符串的快很多,在我们用了五年...

相似回答