首页 > 其他分享 >stl库

stl库

时间:2023-01-04 15:47:14浏览次数:24  
标签:index string 容器 stl str1 char num

C++STL库和算法库备忘录

//stack和queue都没有迭代器,只有一些相关的操作
for_each(迭代器1,迭代器2,执行函数)//for_each算法函数,三个函数,只能在STL容器中使用。
vector<int> v;
//迭代器的定义
vector<int>::iterator i=v.begin();//迭代器可以看成C里的指针,i++,取数的话*i

vector容器的相关算法

vector<int>v;
vector<int>vx(v.begin(),v.end());//区间默认构造容器,或者vx.assgin(v.begin(),v.end())
vector<int>vx(num,elem);//默认构造num个elem,或者vx.assign(num,elem)
vector<int>vx(v);//拷贝构造
vector<int>vx=v;//直接复制
v.at(i);//访问某下标元素
v[i];
v.push_back(elem);//在末尾加入元素
vector<int>v1;
vector<int>v2;
v1.swap(v2);//将两个容器中的元素互换
v.reserve(num);//预留num个空间
v.empty();//容器判空
maxsize=v.capacity();//容器的总大小
length=v.size();//容器的现有元素个数
v.resize(p1,p2);//重新规定容器的maxsize,p1表示maxsize,剩余空间使用p2填充
v.resize(p1);//p1<length时,编译器会自动删除多余元素
v.pop_back(void);//删除容器尾部,没有返回值
v.insert(p1,elem);//在p1位置插入元素elem,p1必须时迭代器
v.insert(p1,num.elem);//在p1位置插入num个elem
v.erase(v.begin());//删除v的空间 

string容器的相关算法

string str1(str2);//string容器的定义
string str1("sasasasas");
str1.assign("sasaa",num);//取前num个字符
str1.assign(num,char);//初始话为num个char
str1.append("sas",num);//str1添加前num个字符
str1.append("asaaas",index,num);//从下标index开始,添加num个字符
str1.compare(str2);//两个字符串相互比较
string=str1.substr(index,num);//从index开始截取num个字符
string=str1.erase(index,num);//从index开始删除num个字符
string=str1.insert(index,char);//在下标index插入char
int=str.find(char);//从左到右找到字符,并且返回下标
int=str.rfind(char);//从右到左找到字符,并且返回下标
str.replace(index,num,"sas");//从index开始后num个字符被sas替换

标签:index,string,容器,stl,str1,char,num
From: https://www.cnblogs.com/tgfoven/p/17025023.html

相关文章

  • STL的基础操作
    1vector,变长数组,倍增的思想size()返回元素个数empty()返回是否为空clear()清空front()/back()push_back()/pop_back()begin()/end()[]支持比较......
  • 万字长文 | STL 算法总结
    本篇所有算法源码均已同步收录GitHub仓库,欢迎点个小⭐️:https://github.com/rongweihe/CPPNotes/tree/master/STL-source-code-notes​大家好,我是小贺。上一篇更新了​​ST......
  • ​硬核来袭 | 2 万字 + 10 图带你手撕 STL 关联式容器源码
    本篇已同步收录GitHub仓库,这里有小贺的源码阅读笔记:https://github.com/rongweihe/CPPNotes/tree/master/STL-source-code-notes大家好,我是小贺。鸽了好久的 STL源码系......
  • 《STL 源码剖析》学习笔记之容器(一)vector
    [图]TheContainer 2019-08-01前言侯捷大师的《STL源码剖析》,实乃一本神书,可以说也是一本很硬核的书了,不管是实验室的师兄师姐,还是牛客网上一些大佬们,都无不推荐此书,想要深......
  • stl学习之rope
    简介rope是本人在极度不想敲平衡树的情况下从朋友偶然听说的,了解之后用寥寥数行边秒杀了那道平衡树的题。笔者遂深感其强大与低调,故写笔记以纪念之。头文件与定义#inclu......
  • 《STL 源码剖析》学习笔记之容器(二)list
    [图]Theorange 2019-08-061、list概述相较于vector的连续线性空间,list就显得复杂许多,它的好处是每次安插或删除一个元素,就配置或释放一个元素空间。因此,list对于空间......
  • STL补充
    1vector,变长数组,倍增的思想1size()返回元素个数2empty()返回是否为空3clear()清空4front()/back()5push_back()/pop_back()6begin()/end()7[]8......
  • 【C++入门】(八)STL
    一. #include<vector>vector是变长数组,支持随机访问,不支持在任意位置O(1)O(1)插入。为了保证效率,元素的增删一般应该在末尾进行 1.1声明#include<vector>......
  • STL初相识
    STL初识1.STL的诞生C++的面向对象和泛型编程思想,目标就是复用性的提升。面向对象的三大特征:封装、继承、多态。2.STL基本概念STL从广义上分为:容器、算法、迭代器容......
  • OpenOCD如何通过stlink直接下载程序到stm32板子(已解决)
    首先,关于OpenOCD的入门介绍,以及如何调试,看我这篇文章:​​嵌入式IDE原理OpenOCD介绍以及stlink如何连接stm32板子_标biao的博客-由于OpenOCD一旦连接上,会自动进入3种端口监......