STL 中的容器们(三)
二维vector的初始化
使用vector::vector(count, value)
的构造函数来接收一个大小参数以及一个默认值。
vector<vector<int>> Mat(10, vector<int>(10, 8));
我们要创建一个 3 行 4 列的二维向量,全部元素初始化为 0;
std::vector<std::vector<int>> mat(3, std::vector<int>(4, 0));
我们也可使用C++11引入的uniform initialization
:
vector<vector<int>> Mat{{1, 1, 1}, {2, 2, 2}};
set的添加动作
std::set<std::string> ss;
ss.insert("hello");
ss.insert("hello");
ss.insert("world");
提供 find 成员方法的容器
(1)string
返回值为size_type,也即整型值(2)set
(3)map
std::map<K, V>::const_ietrator ite = m.find(val); return ite->second;
vector::resize() vs vector::reserve()
- resize()不仅分配内存,而且创建实例
reserve()仅仅分配内存,不进行初始化
resize()影响size(),reserve()只影响capacity()
resize()可大可小,长度变小时,调用后添加进的元素的析构函数;
#include <iostream>
#include <vector>
using namespace std;class A
{
public:A() { cout << "A::A()" << endl;}~A() { cout << "A::~A()" << endl;}
};int main(int, char**)
{vector<A> as, bs;as.resize(3);// A::A()// A::A()// A::A()bs.reserve(5);// 什么也没有输出as.resize(1);// 调用两次析构函数,使size为1return 0;
}
STL 中的容器们(三)相关推荐
- stl中各种容器的自定义比较函数
class elem { public:elem();elem(int aa):a(aa){} public:int a;int getA(){return a;} };class elem1 { p ...
- STL 中的容器们(四)
STL 中的容器们 for (int i = 0; i < coll.size()-1; ++i){... } 上述代码的写法,coll.size()-1 语句是会出问题的,STL 的所有容器的 ...
- STL中基本容器有: string、vector、list、deque、set、map
为什么80%的码农都做不了架构师?>>> 在STL中基本容器有: string.vector.list.deque.set.map set 和map都是无序的保存元素,只能通过 ...
- STL中算法锦集(三)
STL中算法锦集(三) 文章目录 STL中算法锦集(三) 一.< algorithm > 1.std::find_if 2.std::find_if_not 3.std::for_each ...
- 算法求解中的变量、数组与数据结构(STL 中的容器)
本质上算法都是对数据的操作,没有数据,没有存储数据的容器和组织方式,算法就是无源之水无本之木,就是巧妇也难为无米之炊.算法是演员,变量.数组.容器等就是舞台, 然后整个算法的处理流程,都是针对这些数据 ...
- STL 中的容器们 (二)
STL 中的容器们 容器最后一个元素的迭代器 我们知道容器: .begin():第一个元素coll[0]的迭代器 .end():最后一个元素之前的元素的迭代器 所以容器最后一个元素的迭代器为:coll ...
- C++ STL : 模拟实现STL中的容器适配器stack和queue
目录 什么是容器适配器 stack stack的文档介绍-(来自cplusplus) stack的实现 queue queue的文档介绍-(来自cplusplus) queue的实现 什么是容器适配器 ...
- php的set 容器,关于STL中set容器的一些总结
1.关于set C++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vector, string, list等方便的容器,更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结构 ...
- 关于STL中vector容器的一些总结
第一个总结来自于http://www.jb51.net/article/41648.htm,第二个来自于http://www.cppblog.com/totti1006/archive/2009/09 ...
最新文章
- 20175320 2018-2019-2 《Java程序设计》第2周学习总结
- yum使用、单用户模式、救援模式
- matlab中的rem和mod,matlab的rem()和mod()函数
- CentOS 6.X安装LAMP最高版本环境
- 推荐21个顶级的Vue UI库! – TalkingData‘s Blog
- python中集合的元素可以是任意数据类型_Python数据类型之列表
- SQL注入学习part05:(结合sqli-libs学习:41-50关)
- Navicat Premium11连接Oracle出现ORA-28547:connection to server failed
- 深度学习 检测异常_深度学习用于异常检测:全面调查
- CentOS遇到Qt编译问题的解决方案(error: cannot find -lGL)
- 想问问大家,使用qt开发的wps安装包是如何做到32位64位系统兼容的
- 称重仪表显示ol怎么解决_地磅称重时仪表显示出现跳数如何解决?
- Linux下go环境安装、环境配置并执行第一个go程序
- C++中begin()函数的含参数的使用
- 安卓版企业微信下载的文件保存目录
- ES6新增关键字:let和const及let的常用场景
- python组件化软件策划_Vue组件化开发
- 2805076 /system/WTD/android.fg_blocked_67fc4997-ims导致binder耗尽
- Java base64加密解密 两种实现方式
- 根据经纬度信息画实际地图中的轨迹之百度地图与谷歌地球
热门文章
- OpenCV精进之路(三):图像处理——形态学滤波(膨胀、腐蚀、开闭运算)
- 数据挖掘项目:银行信用评分卡建模分析(下篇)
- codeforces-984D——XOR-pyramid(DP)
- IE9或以上的浏览器flash值为空时,导致domready不触发
- 在ps中画两个同心圆并且把两个同心圆进行任意角度切割
- 终于有了自己的域名了
- 转: 技巧/诀窍:在ASP.NET中重写URL
- CCF201812-3 CIDR合并(100分)【位运算+文本】
- UVA10666 The Eurocup is Here!【数学模式】
- Bailian2705 跳绳游戏【序列处理】