返回指向vector某一元素的迭代器?

问题描述

返回指向vector某一元素的迭代器?
有什么方法可以返回指向vector某一元素的迭代器?
(除了begin和end函数)

解决方案

既然是迭代器,就只能顺序访问。你可以调用n次movenext跳过n个元素。

解决方案二:
template< class InputIt class T >
InputIt find( InputIt first InputIt last const T& value );
(1)

template< class InputIt class UnaryPredicate >

InputIt find_if( InputIt first InputIt last
UnaryPredicate p );
(2)

template< class InputIt class UnaryPredicate >

InputIt find_if_not( InputIt first InputIt last
UnaryPredicate q );

解决方案三:
vector是顺序类容器; 它在内存中是连续存放的;迭代器是一种智能指针,可以理解为泛型指针; 我认为是直接定义个迭代器,初始化时指定vector中某一元素。

解决方案四:
可以的,你自己封装一个函数,函数内部是遍历这个vector,当这个vector的元素与你要的元素相同时,将迭代器的 返出。

解决方案五:
http://blog.csdn.net/xianfajushi/article/details/25134799
std::vector<学生个人信息类>::iterator i;

07.i = 学生个人信息组.end();

时间: 2024-10-26 05:37:05

返回指向vector某一元素的迭代器?的相关文章

解决使用attachEvent函数时,this指向被绑定的元素的问题的方法_javascript技巧

使用attachEvent对同一事件进行多次绑定,这是解决事件函数定义冲突的重要方法.但是在IE中,函数内的this指针并没有指向被绑定元素,而是function对象,在应用中,这是很难受的一件事,如果试图用局部变量传送元素,会因为闭包而引起内存泄漏.那么,我们应该如何解决这一难题呢?    我给Function添加了原型方法"bindNode",在这个方法里,根据传送过来的元素,进行全局性存储转换,然后返回经过封装的函数,使用call方法来进行属主转换. <html> &

vector定义-定义元素为int数组的vector时出错: vector&amp;amp;lt;int [10]&amp;amp;gt; vec;

问题描述 定义元素为int数组的vector时出错: vector<int [10]> vec; 为什么不能这样定义?请问错在哪里? 正常的定义方式是vector> vec; 但是vector为什么不能直接存放数组呢?非常疑惑,求大神解答- 解决方案 vector<int *> vector<vector<int>> 这两个试试看 解决方案二: 像老曹那样,定义指针 解决方案三: int数组不是模版类型. 你这个需要双层vector vector>

C++中返回指向函数的指针示例_C 语言

在C++中,函数的形参可以是指向函数的指针,函数也可以返回函数的指针.例如:int (*ff(int)) (int *,int);表示:ff(int)是一个函数,带有一个int型的形参,该函数返回int (*) (int *,int),它是一个指向函数的指针,所指向的函数返回int型并带有两个分别是Int*和int型的形参.使用typedef可使得定义更加易懂:typedef int (*PF) (int *,int);PF ff(int);下面给出一个例子: 复制代码 代码如下: #inclu

C++中vector的用法实例解析_C 语言

本文实例展示了C++中的vector用法,分享给大家供大家参考.具体如下: 一.概述 vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库.vector是一个容器,它能够存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,可以动态改变大小. 例如: // c语言风格 int myHouse[100] ; // 采用vector vector<int> vecMyHouse(100); 当如上定义后,vecMyHouse

C++ STL

C++ STL 基础 C++的类.请读下面一段代码: class Shape { private: int x_pos; int y_pos; int color; public: Shape() : x_pos(0), y_pos(0), color(1) {} Shape(int x, int y, int c = 1) : x_pos(x), y_pos(y), color(c) {} Shape(const Shape& s) : x_pos(s.x_pos), y_pos(s.y_po

set

#include <iostream> using namespace std; #include <set> int main(int argc, const char * argv[]) {     //set必须保证输出数据的唯一性     set<int> ss;     int a[] = {1,2,5,4,3,6,7,8};     //插入数据     for (int i=0; i<sizeof(a)/4; i++) {         ss.in

容器大小的改变以及容器操作可能使迭代器失效、vector对象的容量变化

1 改变容器的大小 我们可以使用resize来增加或缩小容器,与往常一样,array不支持resize.如果当前大小大于所要求的大小,容器后面的元素会被删除:如果当前大小小于新大小,会将新元素添加到容器后部:  list<int> ilist(10,42);   //10个int:每个的值都是42 ilist.resize(15);   //将5个值为0的元素添加到ilist的末尾 ilist.resize(25,-1);  //将10个值为-1的元素添加到ilist的末尾 ilist.res

《21天学通C++(第7版)》——17.2 典型的vector操作

17.2 典型的vector操作 21天学通C++(第7版) std::vector类的行为规范和公有成员是由C++标准定义的,因此,遵循该标准的所有C++编程平台都支持本章将介绍的vector操作. 17.2.1 实例化vector vector是一个模板类,需要使用第14章介绍的方法进行实例化.要实例化vector,需要指定要在该动态数组中存储的对象类型: 要声明指向list中元素的迭代器,可以这样做: 如果需要可用于修改值或调用非const函数的迭代器,可使用iterator代替const

C++程序设计:原理与实践(进阶篇)15.5 再次泛化vector

15.5 再次泛化vector 显然,通过15.3-15.4节的例子我们发现,标准库vector包含一个iterator成员类型,以及begin()和end()成员函数(与std::list类似).然而,我们并没有在第14章中为vector类提供这些成员.那么,对于不同类型的容器而言,它们究竟采用了什么方法,以使它们或多或少地能够在15.3节所介绍的STL泛型编程风格中相互替换使用?首先,我们将简要介绍一种解决方案(简单起见,我们忽略了分配器),然后再对解决方案进行解释:       using