zoukankan      html  css  js  c++  java
  • C++ STL常用容器基本用法汇总

    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()是取最后一个的下一个
    • 下图为成员函数

    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
    • 成员函数表如下图

    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

  • 相关阅读:
    JAVA中堆和栈的区别
    怎么回答面试官:你对Spring的理解?
    如何设计一个高可用、高并发秒杀系统
    这应该是把Java内存区域讲的最清楚的一篇文章
    Spring Cloud底层原理解析
    Spring事务管理详解
    选择合适Redis数据结构,减少80%的内存占用
    最强Java并发编程详解:知识点梳理,BAT面试题等
    深入理解HashMap
    Springboot 优雅停止服务的几种方法
  • 原文地址:https://www.cnblogs.com/liminghuang/p/8657792.html
Copyright © 2011-2022 走看看