**
C++STL
**
-
1 Vector常见用法:
1.1 容器内元素的访问:通过下标访问; 通过迭代器访问,其定义是vector::iterator it; 迭代器循环条件只能用it != v.end();
1.2 vector v; v.begin()为取元素的首元素地址;
1.3 V.push_back(x) 就是在vector后面添加一个元素x;
1.4 V.pop_back(x) 用来删除vector的尾元素;
1.5 V.size() 用来获得vector中元素的个数
1.6 V.clear() 用来清空vector中的所有元素
1.7 V.insert(it, x) 用来向vector的任意迭代器it处插入一个元素x
1.8 V.erase(it) 删除迭代器为it处的元素,v.erase(first, last) 删除[first, last )内的元素 -
2 Set常见用法:
2.1 容器内元素的访问:通过下标访问; 通过迭代器访问,其定义是set::iterator it; 迭代器循环条件只能用it != s.end();
2.2 S.insert(x) 可将x插入set容器中,并自动递增排序和去重
2.3 S.find(value) 返回set中对应值为value的迭代器
2.4 s.erase(it) it为所需删除元素的迭代器,s.erase(value) value为所需删除元素的值;s.erase(first, last) 删除[first, last )内的元素
2.5 s.size() 用来获得set中元素的个数
2.6 s.clear() 用来清空set中的所有元素 -
3 string常见用法:
3.1 容器内元素的访问:通过下标访问; 通过迭代器访问,其定义是string::iterator it; 迭代器循环条件只能用it != str.end();
3.2 str.size()/str.length() 用来获得set中元素的个数
3.3 Str.insert(pos, string) 在pos号位置插入字符串string; insert(it, it2, it3),it为原字符串的欲插入位置,it2和it3为待插字符串的首尾迭代器用来表示串【it2, it3)将被插在it的位置上
3.4 s.erase(it) it为所需删除元素的迭代器, s.erase(first, last) 删除[first, last )内的元素; str.erase(pos, length) 其中pos为需要开始删除的起始位置,length为删除的字符个数。
3.5 s.clear() 用来清空string中的所有元素
3.6 str.substr(pos, len) 返回从pos号位开始,长度为 len的字串
3.7 str.find(str2) 当str2 是str 的子串时,返回其在str中第一次出现的位置;如果str2不是str的子串,那么返回string::npos
str.find(str2, pos) 从str的pos号位开始匹配str2 返回值与上相同
3.8 str.replace(pos, len, str2)把str从pos号位开始、长度为len的子串替换为str2; str.place(it1, it2, str2) 把str的迭代器[it1, it2)范围内的子串替换为str2 -
4 map的常见用法:
4.1 容器内元素的访问:通过下标访问; 通过迭代器访问,其定义是 map<typename1, typename2>::iterator it; 迭代器循环条件只能用it != str.end();
4.2 M.find(key) 返回键为key的映射的迭代器
4.3 m.erase(it) it为所需删除元素的迭代器, m.erase(key) key为欲删除的映射的键;m.erase(first, last) 删除[first, last )内的元素
4.4 map.size() 用来获得map中映射的对数
4.5 map.clear() 用来清空map中的所有元素 -
5 queur的常见用法:
5.1 queue容器内元素的访问: 只能通过front()来访问队首元素,或是通过back()来访问队尾元素。
5.2 push(x) 将x进行入队 pop() 令队尾元素出队
5.3 empty() 检测queue是否为空,为空则返回true,否则返回false。
5.4 size()返回queue内元素的个数。 -
6 priority_queue又称为优先队列:
6.1 优先队列中只能通过top()函数来访问队首元素。
6.2 push(x) 将x进行入队 pop() 令队尾元素出队。
6.3 empty() 检测queue是否为空,为空则返回true,否则返回false。
6.4 size()返回queue内元素的个数。
6.5 less 表示数字大的优先级越大,而greater 表示数字小的优先级越大。 -
7 stack的常见用法:
7.1 stack 中只能通过top()来访问栈顶元素。
7.2 push(x) 将x进行入栈 pop() 令队尾元素出栈。
7.3 empty() 检测stack是否为空,为空则返回true,否则返回false。
7.4 size()返回stack内元素的个数。 -
8 一些常用函数:
8.1 Reverse(it1, it2)可以将数组指针在【it1, it2) 之间的元素或容器的迭代器在【it1, it2)范围内的元素进行反转。
8.2 Fill() 可以把数组或容器中的某一段区间赋予某个相同的值。 Fill(a, a+5, 233)。
8.3 Sort() 排序函数。
8.4 Cmp()比较函数
8.5 Lower_bound(first, last, val) 用来寻找容器或数组的【first, last)范围内第一个值大于等于val的元素的位置,如果是数组返回该位置的指针。
8.6 Upper_bound(first, last, val)用来寻找容器或数组的【first, last)范围内第一个值大于val的元素的位置,如果是数组返回该位置的指针。