1.vector

//最好给它一个初始化大小

#include <iostream>
#include <vector>
using namespace std; int main()
{
// 创建一个向量存储 int
vector<int> vec;
int i; // 显示 vec 的原始大小
cout << "vector size = " << vec.size() << endl; // 推入 5 个值到向量中
for(i = ; i < ; i++){
vec.push_back(i);
} // 显示 vec 扩展后的大小
cout << "extended vector size = " << vec.size() << endl; // 访问向量中的 5 个值
for(i = ; i < ; i++){
cout << "value of vec [" << i << "] = " << vec[i] << endl;
} // 使用迭代器 iterator 访问值
vector<int>::iterator v = vec.begin();
while( v != vec.end()) {
cout << "value of v = " << *v << endl;
v++;
} return ;
}
  • push_back( ) 成员函数在向量的末尾插入值,如果有必要会扩展向量的大小。
  • pop_back( )    删除末尾元素                                                                                                      
  • size( ) 函数显示向量的大小                                                                                                                                                              
  • resize( ) 改变大小
    •   
  • insert( ) 插入操作
    • #include<iostream>
      #include<vector>
      using namespace std;
      vector<int> v1(,);
      int main(){
      vector<int> v2;
      v2.push_back();
      v1.insert(v1.begin(),);//在开始位置插入元素 3
      v1.insert(v1.begin()+,,);//在指定位置插入2个344
      v1.insert(v1.begin(),v2.begin(),v2.end());//在开始位置插入整个区间元素
      return ;
      }
  • emplace( ) 
    • emplace( 迭代器  ,个数,插入元素);
  • 删除操作  ( 并没有释放内存)
    • clear( )   清空
    • erase( )    删除
  • 释放内存
    • swap()   //与一个空 vector 交换
  • 查找操作
    • find( )    
    • 找到则返回迭代器的位置,否则迭代器将指向 end( )
  • begin( ) 函数返回一个指向向量开头的迭代器。
  • end( ) 函数返回一个指向向量末尾的迭代器。
  • front( ) 返回第一个元素的引用
  • back( )  返回最后一个元素的引用

2.deque   双向队列

  2.1  size( )大小与容量相等

  2.2  at( )  用进行边界检查的索引来访问元素

  2.3  frant( )  , back( )

  2.4  添加元素   删除元素

    push_back( )  ,pop_back( )   尾部

    push_front( )  ,pop_front( )   头部

    insert( )

    erase( )

    clear( )

3.list   双向链表

  3.1 size ( )

  3.2 resize( )

  3.3 push_front( )   头部添加元素    push_back( )  尾部

    insert( )

  3.4 clear( ), erase( )

  3.5 remove( )    移除与参数相同的元素

  3.6 unique( )   移除重复元素,只保留第一个

  3.7 排序

    无参 sort() 函数将所有元素升序排列

    接受一个函数对象,排序

  3.8 merge( )   合并,必须为升序

  3.9 front   ,back 

4.stack   栈

  

  4.1  创建栈时,不能在初始化列表用对象来初始化,但可以用另一个容器来初始化

  4.2  top( )   返回栈顶元素的引用

  4.3  push( )  压入栈顶

  4.4  pop( )  弹出栈顶元素

  4.5 size( )  返回栈中元素的个数

  4.6 empty( ) 判断栈是否为空

  4.7 emplace( )   emplace函数在栈顶中直接构造元素

  4.8  swap( )  将当前栈中的元素和参数中的元素交换

5. queue   

 

  5.1  push( )  尾部添加

  5.2  pop( )  删除第一个元素

  5.3  front( )  返回第一个元素的引用

  5.4  back( ) 返回最后一个元素的引用

  5.5  size( )

  5.6  empty( )

  5.7  emplace( )

6.map 

  不允许有重复值

  6.0  初始化

    通过两个嵌套的花括号,或make_pair( T1,  T2)

  6.1  size( )   , empty( )  ,clear( )

  6.2  insert( )  插入

    insert( make_pair( T1,T2) );

  6.3  find( )   查找

  6.4 构造新元素

    emplace( )  

  6.5 at( )  返回参数键对应的元素

    [ ]   : int i= Name [ key ]

  

  6.4  erase( )  删除

    移除键和参数匹配的元素,然后返回所移除元素的个数 (  0 , 1  )

    也可以用指向删除元素的迭代器作为 erase() 的参数。这种情况下,返回的迭代器指向

    被删除元素的下一个位置

7.unordered_map

8.set  集合

  

C++ STL学习总结的更多相关文章

  1. 标准模板库(STL)学习探究之stack

    标准模板库(STL)学习探究之stack queue priority_queue list map/multimap dequeue string

  2. 标准模板库(STL)学习探究之vector容器

    标准模板库(STL)学习探究之vector容器  C++ Vectors vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库.vector之所以被 ...

  3. ###STL学习--vector

    点击查看Evernote原文. #@author: gr #@date: 2014-08-11 #@email: forgerui@gmail.com vector的相关问题.<stl学习> ...

  4. ###STL学习--关联容器

    点击查看Evernote原文. #@author: gr #@date: 2014-08-23 #@email: forgerui@gmail.com STL中的关联容器. ###stl学习 |--迭 ...

  5. ###STL学习--迭代器

    点击查看Evernote原文. #@author: gr #@date: 2014-08-23 #@email: forgerui@gmail.com STL中的迭代器. ###stl学习 |--迭代 ...

  6. ###STL学习--函数对象

    点击查看Evernote原文. #@author: gr #@date: 2014-08-13 #@email: forgerui@gmail.com 在stl中,函数对象被大量地使用,用以提高代码的 ...

  7. ###STL学习--适配器

    点击查看Evernote原文. #@author: gr #@date: 2014-08-24 #@email: forgerui@gmail.com STL中的适配器. ###stl学习 |--迭代 ...

  8. STL学习:STL库vector、string、set、map用法

    本文仅介绍了如何使用它们常用的方法. vector 1.可随机访问,可在尾部插入元素:2.内存自动管理:3.头文件#include <vector> 1.创建vector对象 一维: (1 ...

  9. Effective STL 学习笔记 39 ~ 41

    Effective STL 学习笔记 39 ~ 41 */--> div.org-src-container { font-size: 85%; font-family: monospace; ...

  10. Effective STL 学习笔记 Item 38 : Design functor classes for pass-by-value

    Effective STL 学习笔记 Item 38 : Design functor classes for pass-by-value */--> div.org-src-container ...

随机推荐

  1. pg_flame postgresql EXPLAIN ANALYZE 火焰图工具

    pg_flame 是golang 编写的一个将pg的EXPLAIN ANALYZE 转换为火焰图,使用简单 以下是一个简单的demo 环境准备 docker-compose 文件   version: ...

  2. .net core 原生支持grpc

    文章转自:https://grpc.io/blog/grpc-on-dotnetcore This is a guest post by Sourabh Shirhatti, a Program Ma ...

  3. 框架入门经典项目TodoMVC

    一.项目介绍 ①地址:http://todomvc.com/ ②GitHub下载模板 ③通过npm下载模板的样式 ④通过npm下载Vuejs ⑤项目文件,主要修改app.js和index.html两个 ...

  4. ZROI 2020WC集训训练赛 Day4

    最后一场,幸好没有掉分,假装功德圆满吧. T1有各种数据结构做法,主要难点在优化空间. T2直接DP就完事了,然而记搜的复杂度是对的-- T3神仙最小割. 没错这篇文章就是咕了. pkuwc rp++ ...

  5. GoCN每日新闻(2019-11-02)

    GoCN每日新闻(2019-11-02) GoCN每日新闻(2019-11-02) 1. Go 1.13.4 and Go 1.12.13 are released https://groups.go ...

  6. nagios监控的安装

    本文中,物理机IP 192.168.1.105虚拟linux主机ip 192.168.1.10安装apache和phpApache 和Php 不是安装nagios 所必须的,但是nagios提供了we ...

  7. K8S集群搭建——基于CentOS 7系统

    环境准备集群数量此次使用3台CentOS 7系列机器,分别为7.3,7.4,7.5 节点名称 节点IPmaster 192.168.0.100node1 192.168.0.101node2 192. ...

  8. Mac版最详细的Flutter开发环境搭建

    上周任务不多,闲来无事想学习一下flutter耍一耍,发现flutter的环境搭建步骤还是很繁琐的,官网的搭建教程只是按步骤让你进行操作,中间出现的问题完全没有提及,对我这种没搞过原生开发的小白来说超 ...

  9. [Web 测试] Jest单元测试的几个指标

    三个参数代表什么? %stmts是语句覆盖率(statement coverage):是不是每个语句都执行了? %Branch分支覆盖率(branch coverage):是不是每个if代码块都执行了 ...

  10. c# 格式化时间

    var dt = DateTime.Now; string tmp = string.Format("{0}{1}-{2:00}-{3:00}.*.{4}", "&quo ...