![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
STL
Miss_zhuo_
好好码哦
展开
-
【C++ STL学习】容器迭代器 iterator详解
目录1. 本质2. 分类3. 操作4. 各容器的迭代器1. 本质要访问顺序容器和关联容器中的元素,需要通过“迭代器(iterator)”进行。迭代器是一个变量,相当于容器和操纵容器的算法之间的中介。迭代器可以指向容器中的某个元素,通过迭代器就可以读写它指向的元素。从这一点上看,迭代器和指针类似。2. 分类1) 正向迭代器,定义方法如下:容器类名::iterator 迭代器名;2) 常量正向迭代器,定义方法如下:容器类名::const_iterator...原创 2021-04-22 13:38:22 · 2037 阅读 · 0 评论 -
C++ 中的find函数是怎么实现的?时间复杂度是多少?
1. std::findtemplateinline _InputIter find(_InputIter __first, _InputIter __last, const _Tp& __val, input_iterator_tag){ while (__first != __last && !(*__first == __val)) ++__first; return __first;}时间复杂度是O(n).2. map::f..原创 2021-04-07 16:43:04 · 9790 阅读 · 4 评论 -
有关常用STL的一点经验
1.vector做动态数组是很方便,但要考虑代码中经常不小心越界了:不能直接访问未赋值的v的v[ i ]=XXX,它还没定义,不能做左值,只能push_back()。因而不能跳跃赋值。这点不如数组灵活。2.set 可以自动排序,消除重复但不可向s[ i ]这样访问,即使设置了it,*( it )是对的,但*(it + i)是错的。所以随机访问很麻烦。建议转回数组。...原创 2019-03-14 14:44:45 · 147 阅读 · 0 评论 -
pair的赋值用法
1,初始化方式pair<int, int> p(1, 2);2,单独赋值pair<int, int> p;p.first = 1;p.second = 2;3,构造函数pair<int, int> p1(1, 2);pair<int, int> p...转载 2019-03-17 08:06:28 · 3903 阅读 · 0 评论 -
vector的常见用法
用法1. 头文件#include<vector>2. vector声明及初始化vector<int> vec; //声明一个int型向量vector<int> vec(5); //声明一个初始大小为5的int向量vector<int> vec(10, 1); //声明一个初始大小为10且值都是1的向量v...转载 2019-03-12 16:27:29 · 233 阅读 · 0 评论