STL标准模板库

**

C++STL

**

  1. 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. 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. 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. 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. 5 queur的常见用法:
    5.1 queue容器内元素的访问: 只能通过front()来访问队首元素,或是通过back()来访问队尾元素。
    5.2 push(x) 将x进行入队 pop() 令队尾元素出队
    5.3 empty() 检测queue是否为空,为空则返回true,否则返回false。
    5.4 size()返回queue内元素的个数。
  6. 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. 7 stack的常见用法:
    7.1 stack 中只能通过top()来访问栈顶元素。
    7.2 push(x) 将x进行入栈 pop() 令队尾元素出栈。
    7.3 empty() 检测stack是否为空,为空则返回true,否则返回false。
    7.4 size()返回stack内元素的个数。
  8. 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的元素的位置,如果是数组返回该位置的指针。
上一篇:boost::hana::erase_key用法的测试程序


下一篇:[ SDOI 2017 ] 新生舞会