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. podium服务器端的微前端开发框架

    podium 是一个比较全的微前端开发框架. 具有以下特性 自治开发 强大的组合能力 基于约定的开发模式 podium 包含的组件 podlets 页面片段,是一个独立的http 服务,独立运行的,实 ...

  2. 08-图8 How Long Does It Take (25 分)

    Given the relations of all the activities of a project, you are supposed to find the earliest comple ...

  3. GoCN每日新闻(2019-10-30)

    GoCN每日新闻(2019-10-30) GoCN每日新闻(2019-10-30) 1. Asta Xie: 玩转Go语言,从beego开始 https://mp.weixin.qq.com/s/Io ...

  4. 拼图验证码 js,vue

    可查看github网站

  5. What is the difference between UNION and UNION ALL?

    What is the difference between UNION and UNION ALL? UNION removes duplicate records (where all colum ...

  6. nestjs pm2 启动 静态文件404报错

    不要直接使用pm2 start 可执行文件,静态文件会显示404. 使用如下方式:

  7. dubbo源码分析之过滤器Filter-12

    https://blog.csdn.net/luoyang_java/article/details/86682668 Dubbo 是阿里巴巴开源的一个高性能优秀的服务框架,使得应用可通过高性能的 R ...

  8. 引用fastclick.js或使用触屏监听 滑动屏幕报错:解决[Intervention] Unable to preventDefault inside passive event listener

    使用fastClick.js所产生的一些问题 开发h5活动页时想到移动端会有300ms的延迟,于是便打算用fastClick.js解决. 页面引入fastClick.js后,滑动H5页面的时候发现谷歌 ...

  9. Linux系统中日志级别详情

    日志信息分类 1.等级由低到高:debug<info<warn<Error<Fatal; 2.区别: debug 级别最低,可以随意的使用于任何觉得有利于在调试时更详细的了解系 ...

  10. python dlib学习(五):比对人脸

    前言在前面的博客中介绍了,如何使用dlib标定人脸(python dlib学习(一):人脸检测),提取68个特征点(python dlib学习(二):人脸特征点标定).这次要在这两个工作的基础之上,将 ...