C++ STL学习总结
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学习总结的更多相关文章
- 标准模板库(STL)学习探究之stack
标准模板库(STL)学习探究之stack queue priority_queue list map/multimap dequeue string
- 标准模板库(STL)学习探究之vector容器
标准模板库(STL)学习探究之vector容器 C++ Vectors vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库.vector之所以被 ...
- ###STL学习--vector
点击查看Evernote原文. #@author: gr #@date: 2014-08-11 #@email: forgerui@gmail.com vector的相关问题.<stl学习> ...
- ###STL学习--关联容器
点击查看Evernote原文. #@author: gr #@date: 2014-08-23 #@email: forgerui@gmail.com STL中的关联容器. ###stl学习 |--迭 ...
- ###STL学习--迭代器
点击查看Evernote原文. #@author: gr #@date: 2014-08-23 #@email: forgerui@gmail.com STL中的迭代器. ###stl学习 |--迭代 ...
- ###STL学习--函数对象
点击查看Evernote原文. #@author: gr #@date: 2014-08-13 #@email: forgerui@gmail.com 在stl中,函数对象被大量地使用,用以提高代码的 ...
- ###STL学习--适配器
点击查看Evernote原文. #@author: gr #@date: 2014-08-24 #@email: forgerui@gmail.com STL中的适配器. ###stl学习 |--迭代 ...
- STL学习:STL库vector、string、set、map用法
本文仅介绍了如何使用它们常用的方法. vector 1.可随机访问,可在尾部插入元素:2.内存自动管理:3.头文件#include <vector> 1.创建vector对象 一维: (1 ...
- Effective STL 学习笔记 39 ~ 41
Effective STL 学习笔记 39 ~ 41 */--> div.org-src-container { font-size: 85%; font-family: monospace; ...
- 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 ...
随机推荐
- C++ auto 完成类型自动推导与使用
c++11 允许声明一个变量或对象(object)而不需要指明其类型,只需说明它是auto. 1.如: auto i = 42: //i是整型 double f(); auto d=f(); // ...
- windows下百度离线人脸识别本地部署与使用(nodejs做客户端,c++做服务端,socket做通信)
1.离线人脸识别本地部署 详情请阅读百度人脸识别官网 2.nodejs做socket通信的客户端 为什么不直接通过调用c++编译的exe获得人脸识别结果? 原因:exe运行时会加载很多模型而消耗很多时 ...
- Struts2框架的搭建
Struts2是WebWork框架的升级版本,替代了Servlet. 由于用IDEA下载jar包失败,直接创建手动导包. 1.导包: (1)Struts2的目录结构: (2)导入jar包: 2.书写A ...
- 【题解】洛谷 P2725 邮票 Stamps
目录 题目 思路 \(Code\) 题目 P2725 邮票 Stamps 思路 \(\texttt{dp}\).\(\texttt{dp[i]}\)表示拼出邮资\(i\)最少需要几张邮票. 状态转移方 ...
- IIS服务器简单搭建
概况 系统:WIN10企业版 开发工具:VS2013 - VS2017 IIS版本:IIS6.0 安装 安装步骤如图: 这里需要注意一点信息服务器下默认web管理工具只有iis控制台勾上了,也就意味 ...
- 洛谷/Codeforces CF865D 题解
若想要深入学习反悔贪心,传送门. Description: 已知接下来 \(n\) 天的股票价格,每天可以买入当天的股票,卖出已有的股票,或者什么都不做,求 \(n\) 天之后最大的利润. Metho ...
- js中实现函数防抖跟函数节流
最近刚接触两个新概念函数防抖与函数节流,虽然这些内容网上可以搜到很多,大家都有自己的一套的理解方式,都写得很好, 而自己则想在理解的基础上自己把代码实现一遍,加深印象. 一.函数防抖 假如我们有这样的 ...
- Axure9 9.0.0.3648 秘钥亲测可用
用户名: thisProEdition秘钥:PkgeOGle9dSCMXTAczSrTGQZJLcviUJO1kG6onDIH/C68b+AUItWKdbBrmkJsJ0m
- [Beta]Scrum Meeting#9
github 本次会议项目由PM召开,时间为5月14日晚上10点30分 时长20分钟 任务表格 人员 昨日工作 下一步工作 木鬼 撰写博客整理文档 撰写博客整理文档 swoip 为适应新功能调整布局前 ...
- web程序设计关于我们
项目名称 福大咸鱼市场 开发团队 项目板块 负责人 美工 黄鸿杰 后端 胡继文 前端 葛家灿 联系方式:1175204449@qq.com