二维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 中的容器们(三)相关推荐

  1. stl中各种容器的自定义比较函数

    class elem { public:elem();elem(int aa):a(aa){} public:int a;int getA(){return a;} };class elem1 { p ...

  2. STL 中的容器们(四)

    STL 中的容器们 for (int i = 0; i < coll.size()-1; ++i){... } 上述代码的写法,coll.size()-1 语句是会出问题的,STL 的所有容器的 ...

  3. STL中基本容器有: string、vector、list、deque、set、map

    为什么80%的码农都做不了架构师?>>>    在STL中基本容器有: string.vector.list.deque.set.map set 和map都是无序的保存元素,只能通过 ...

  4. STL中算法锦集(三)

    STL中算法锦集(三) 文章目录 STL中算法锦集(三) 一.< algorithm > 1.std::find_if 2.std::find_if_not 3.std::for_each ...

  5. 算法求解中的变量、数组与数据结构(STL 中的容器)

    本质上算法都是对数据的操作,没有数据,没有存储数据的容器和组织方式,算法就是无源之水无本之木,就是巧妇也难为无米之炊.算法是演员,变量.数组.容器等就是舞台, 然后整个算法的处理流程,都是针对这些数据 ...

  6. STL 中的容器们 (二)

    STL 中的容器们 容器最后一个元素的迭代器 我们知道容器: .begin():第一个元素coll[0]的迭代器 .end():最后一个元素之前的元素的迭代器 所以容器最后一个元素的迭代器为:coll ...

  7. C++ STL : 模拟实现STL中的容器适配器stack和queue

    目录 什么是容器适配器 stack stack的文档介绍-(来自cplusplus) stack的实现 queue queue的文档介绍-(来自cplusplus) queue的实现 什么是容器适配器 ...

  8. php的set 容器,关于STL中set容器的一些总结

    1.关于set C++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vector, string, list等方便的容器,更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结构 ...

  9. 关于STL中vector容器的一些总结

    第一个总结来自于http://www.jb51.net/article/41648.htm,第二个来自于http://www.cppblog.com/totti1006/archive/2009/09 ...

最新文章

  1. 20175320 2018-2019-2 《Java程序设计》第2周学习总结
  2. yum使用、单用户模式、救援模式
  3. matlab中的rem和mod,matlab的rem()和mod()函数
  4. CentOS 6.X安装LAMP最高版本环境
  5. 推荐21个顶级的Vue UI库! – TalkingData‘s Blog
  6. python中集合的元素可以是任意数据类型_Python数据类型之列表
  7. SQL注入学习part05:(结合sqli-libs学习:41-50关)
  8. Navicat Premium11连接Oracle出现ORA-28547:connection to server failed
  9. 深度学习 检测异常_深度学习用于异常检测:全面调查
  10. CentOS遇到Qt编译问题的解决方案(error: cannot find -lGL)
  11. 想问问大家,使用qt开发的wps安装包是如何做到32位64位系统兼容的
  12. 称重仪表显示ol怎么解决_地磅称重时仪表显示出现跳数如何解决?
  13. Linux下go环境安装、环境配置并执行第一个go程序
  14. C++中begin()函数的含参数的使用
  15. 安卓版企业微信下载的文件保存目录
  16. ES6新增关键字:let和const及let的常用场景
  17. python组件化软件策划_Vue组件化开发
  18. 2805076 /system/WTD/android.fg_blocked_67fc4997-ims导致binder耗尽
  19. Java base64加密解密 两种实现方式
  20. 根据经纬度信息画实际地图中的轨迹之百度地图与谷歌地球

热门文章

  1. OpenCV精进之路(三):图像处理——形态学滤波(膨胀、腐蚀、开闭运算)
  2. 数据挖掘项目:银行信用评分卡建模分析(下篇)
  3. codeforces-984D——XOR-pyramid(DP)
  4. IE9或以上的浏览器flash值为空时,导致domready不触发
  5. 在ps中画两个同心圆并且把两个同心圆进行任意角度切割
  6. 终于有了自己的域名了
  7. 转: 技巧/诀窍:在ASP.NET中重写URL
  8. CCF201812-3 CIDR合并(100分)【位运算+文本】
  9. UVA10666 The Eurocup is Here!【数学模式】
  10. Bailian2705 跳绳游戏【序列处理】