C++ STL常用容器基本用法汇总

时间:2023-03-08 17:51:15

1.vector

  • 包含头文件#include<vector>
  • 使用命名域using namespace std
  • 定义元素类型为T的vector vector<T> vec
  • 增:向vector中添加元素a,使用成员函数vec.push_back(a),元素a被加到向量末尾
  • 删:vec.pop_back()删除最后一个元素
  • 取:vec[i] 可以取第i个元素,下标从0开始;取第一个元素vec.begin()vec.end()是取最后一个的下一个
  • 下图为成员函数

    C++ STL常用容器基本用法汇总

2.string

  • 包含头文件#include<string>
  • 使用命名域using namespace std
  • 获取字符串长度:str.length()
  • 查找:str.find(a,k) a可以是字符也可以是字符串,k为int。返回从k开始,a首次匹配str中的位置,无匹配则返回-1,k若缺省则从0开始。
  • 字符串倒置:reverse(str.begin(), str.end())
  • 截取子串:str1 = substr(pos,n)返回str中起始位置为pos,长度为n的字符串,n若缺省则到结尾
  • 追加字符串:可以用str.append(str1)或者str+=str1这个重载运算符来实现向str的末尾追加str1
  • 比较字符串:str.compare(str1)相等返回0,str大于str1返回1,否则返回-1。也可以直接用>,<,=

3.stack

  • 包含头文件#include<stack>
  • 使用命名域using namespace std
  • 定义元素为T类型的vector stack<T> sta
  • 成员函数表如下图

    C++ STL常用容器基本用法汇总

4.list

5.queue

  • 定义一个queue的变量 queue<Type> M
  • 查看是否为空范例 M.empty() 是的话返回1,不是返回0;
  • 从已有元素后面增加元素 M.push()
  • 输出现有元素的个数 M.size()
  • 显示第一个元素 M.front()
  • 显示最后一个元素 M.back()
  • 清除第一个元素 M.pop()

6.map

  • 包含头文件#include<map>
  • 使用命名域using namespace std
  • map中的元素是一个pair,定义键为T1类型,值为T2类型的map map<T1, T2> m
  • 增:插入数据有以下四种方法
  //以下例子中m为map<String,int>类型
m["a"] = 1; m.insert(map<string, int>::value_type("a",1)); m.insert(pair<string,int>("c",3)); m.insert(make_pair("d",4));
  • 根据键值取元素和修改元素对应的值
 int i = m["a"];  //取到键值"a"对应的值

 map<int, string>::iterator iter;  

 iter = m.find("a"); // 返回数据所在位置的迭代器,如果map中没有要查找的数据,则返回的迭代器等于end函数返回的迭代器
int i = iter->second; //用迭代器取到对应的值
iter->second=j; //修改迭代器对应的值

7.set