C++容器与迭代器

* 容器的迭代器还有几种:

+ iterator:正常迭代器(常用)

+ reverse_iterator:反向迭代器(有时也用)

- rbegin(),rend()//返回反向迭 代器

+ const_iterator:常量迭代器

+ const_reverse_iterator:

 iterator find(数据){
 for( 从beg;!=end;it ++)
  if(*it==数据)
   return it;
 return end;//未找到,返回无效迭代器
}//查询
*it = new_data;//更新迭代器

--------------------------------

所有的容器在插入数据时会自动加长,程序员不必关心空间问题。

容器的分类:

+ (sequence)

- vector

- list

- deque

序列式容器 共性

构造函数:constructor(int n);constructor(int n,T val)

调整 大小:resize(int n),resize(int n,T val)一般用来加长,不一定能缩短

赋 值:assign(n,val),放入n个相同的值

assign(区间(beg——end) ,val),把指定区间的内容放入容器

插入:insert(pos/*迭代器*/,n,val), insert(pos,区间)

毛插:push_back(val);//在末尾插入新数据

取得首 尾元素:front(),back()

尾删:pop_back();//删除尾部元素

----- ------------------------------

时间: 2024-10-30 03:57:11

C++容器与迭代器的相关文章

c++关于关联容器的迭代器问题

问题描述 c++关于关联容器的迭代器问题 在multimap这种容器中,一个键对应多个值,如果我用迭代器iter指向初始值,则iter->first指向键,那么iter->second指向什么,因为是一键多值,怎样用迭代器遍历这个键的所有的值又如何遍历这个容器的所有的键和值 解决方案 http://www.kuqin.com/cpluspluslib/20071231/3265.html 解决方案二: iter->second指向这个key对应的所有值的一个集合,它的每个元素你又可以用一

2015级C++第14周程序阅读 STL中的简单容器和迭代器

阅读并运行程序,解释程序执行得到的结果 (1) #include<iostream> #include<vector> #include<iterator> using namespace std; int main() { vector<int> ivec; int i; for(i = 0; i < 5; i++ ) ivec.push_back(i); for(i = 0; i < 5; i++) cout<<ivec[i]&l

【C/C++学院】0828-STL入门与简介/STL容器概念/容器迭代器仿函数算法STL概念例子/栈队列双端队列优先队列/数据结构堆的概念/红黑树容器

STL入门与简介 #include<iostream> #include <vector>//容器 #include<array>//数组 #include <algorithm>//算法 using namespace std; //实现一个类模板,专门实现打印的功能 template<class T> //类模板实现了方法 class myvectorprint { public: void operator ()(const T &

把《c++ primer》读薄(3-2 标准库vector容器+迭代器初探)

督促读书,总结精华,提炼笔记,抛砖引玉,有不合适的地方,欢迎留言指正. 标准库vector类型初探,同一种类型的对象的集合(类似数组),是一个类模版而不是数据类型,学名容器,负责管理 和 存储的元素 相关的内存,因为vetcor是类模版,对应多个不同类型,比如int,string,或者自己定义的数据类型等. 程序开头应如下声明 #include <iostream> #include <vector> #include <string> using std::strin

详解C++中的vector容器及用迭代器访问vector的方法_C 语言

vector vector是相同类型对象的集合.集合中的每个对象有个对应的索引.vector常被称为容器(container). 为了使用vector,需要: #include <vector> using std::vector; vector是一个类模版(class template).C++有函数模版和类模版.模版本身不是函数或类,必须通过指定 类型让编译器去实例化(instantiation)它.比如vector<int> ivec. vector是模版,不是类型.从vec

容器大小的改变以及容器操作可能使迭代器失效、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

STL之关联容器

 关联容器支持高效的关键字查找和访问.两个主要的关联容器(associative-container)类型是map和set.标准库提供8个关联容器,它们的不同体现在三个维度上: 或者是一个set,或者是一个map 或者要求不重复的关键字,或者允许重复关键字 按顺序保存元素,或无序保存. 允许重复关键字的容器的开头名字中都包含单词multi:不保持关键字按顺序存储的容器的名字都以单词unordered开头. 类型map和multimap定义在头文件map中:set和multiset定义在头文件se

[C++ 面试基础知识总结] 顺序容器

[C++ 面试基础知识总结] 顺序容器 参考书籍:<C++ Primer> 目录 C 面试基础知识总结 顺序容器 目录 顺序容器与选择 迭代器 容器的初始化和赋值 顺序容器操作 添加元素 访问元素 删除元素 改变容器大小 迭代器失效 vector对象的增长 string 操作 改变string 搜索string 数值转换 容器适配器 栈stack 队列queue 顺序容器与选择 顺序容器类型: vector 可变大小数组 deque 双端队列 list 双向链表 forward_list 单向

ACM STL容器和算法

1.4      STL 的组成 STL有三大核心部分:容器(Container).算法(Algorithms).迭代器(Iterator),容器适配器(container adaptor),函数对象(functor),除此之外还有STL其他标准组件.通俗的讲: 容器:装东西的东西,装水的杯子,装咸水的大海,装人的教室--STL里的容器是可容纳一些数据的模板类. 算法:就是往杯子里倒水,往大海里排污,从教室里撵人--STL里的算法,就是处理容器里面数据的方法.操作. 迭代器:往杯子里倒水的水壶,