【C++标准库】STL容器

STL容器的共通能力

  • 所有容器提供的都是“value语义”而非"reference语义"。容器进行元素的安插动作时,内部进行copy或者move,而不是管理元素的reference。
  • 元素在容器内有其特定顺序。
  • 一般,各项操作并非绝对安全,调用者需要确保传给操作函数的实参符合条件。
const vector<int> v1 = { 1,2,3,4,5,6 }; //使用初值列初始化
vector<float> v2(v1.begin(), v1.end()); //使用区间初始化
list<string> l = { "hello","world" };
vector<string> c1(make_move_iterator(l.begin()), make_move_iterator(l.end())); //使用move迭代器初始化
int aArray[] = { 2,3,7,11,33 };
set<int> c2(std::begin(aArray), std::end(aArray)); //C-Style数组元素初始化
vector<float> c3 = std::move(v2); //使用move构造函数初始化,容器v2的内容将不再明确

原文地址:https://www.cnblogs.com/larry-xia/p/9349552.html

时间: 2024-08-29 14:43:11

【C++标准库】STL容器的相关文章

C++标准库——STL

阅读目录 1. C++标准库--STL 2. C++"准"标准库--Boost 想要彻底搞懂C++是很难的,或许是不太现实的.但是不积硅步,无以至千里,所以抽时间来坚持学习一点,总结一点,多多锻炼几次,相信总有一天我们会变得"了解"C++. 1. C++标准库--STL 1.1 STL简介 STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称.它是由Alexander Stepanov.Meng Lee和Davi

把《c++ primer》读薄(3-2 标准库vector容器+迭代器初探)

督促读书,总结精华,提炼笔记,抛砖引玉,有不合适的地方,欢迎留言指正. 标准库vector类型初探,同一种类型的对象的集合(类似数组),是一个类模版而不是数据类型,学名容器,负责管理 和 存储的元素 相关的内存,因为vetcor是类模版,对应多个不同类型,比如int,string,或者自己定义的数据类型等. 程序开头应如下声明 #include <iostream> #include <vector> #include <string> using std::strin

C++笔记(6):标准模板库STL:容器、迭代器和算法

STL(Standard Template Library)是C++标准库的一部分.STL的代码从广义上讲分为三类:容器.迭代器和算法. 1.容器 2.迭代器 3.算法  -------------------------------------------------------------------------------------------------------------------------- 1.容器 顺序容器容器是特定类型对象的集合.顺序容器为程序员提供控制元素存储和访问

C++标准库——STL之空间配置器

声明:源码同<STL源码剖析>(侯捷) STL: C++标准的模板库,通用性高. 常见的数据结构封装. 提供常用的通用算法. STL六大组件: 容器      算法       迭代器       仿函数(函数对象)     适配器      配置器 空间配置器的作用: 1.提高代码复用率,功能模块化. 2.减少内存碎片问题. 比如我们list是链式结构,如果其中的成员是一个个new出来的,我们知道new的底层实现是malloc,同时也必须清楚,当malloc一块40字节空间时,操作系统为了能

C++标准库——顺序容器

容器是容纳特定类型对象的集合.顺序容器将单一类型元素聚集起来,并且根据位置来存储和访问这些元素.顺序容器中元素排列顺序与元素值无关,而是根据元素值添加到容器中的次序决定的. 标准库中有三种顺序容器,分别是vector,list与deque.其中vector支持随机的快速访问,因为vector中存放数据是在内存中连续存放的.在实际的实现中,vector会提前申请一块较大的内存空间(如果指定了大小,一般是指定大小的两倍),这样每次加入新的元素时不用再申请新的内存空间,提高效率.list容器是类似于链

c++标准库之容器

array 对内置数组进行包装,捆绑常用操作之后就形成了array.array的优点是在时空间效率上与内置数组几乎一致,但比内置数组使用起来顺手.size函数代替 sizeof(arr)/sizeof(arr[0]),back函数代替了 arr[sizeof(arr)/sizeof(arr[0]-1],array还可以进行swap及比较.array的缺点是大小固定. vector 容器大小可动态增长,不能动态缩减的容器.vector支持下标访问,访问速度仅次于内置数组与array.vector在

把《c++ primer》读薄(3-3 标准库bitset类型)

督促读书,总结精华,提炼笔记,抛砖引玉,有不合适的地方,欢迎留言指正. //开头 #include <bitset> using std::bitset; 问题1.标准库bitset类型(模版) 需要处理二进制位的时候,可以使用c++标准库提供的bitset类型,它也是类模版,类似vectro容器,唯一不同的是,bitset类型需要说明长度,使用常量表达式给出的整型字面值或者已经初始化的cosnt对象. bitset<32> bit;//从0到31位算的,bit的32位每位初始化为

STL标准库-容器-set与multiset

摘要: 技术在于交流.沟通,转载请注明出处并保持作品的完整性. set与multiset关联容器 结构如下 set是一种关联容器,key即value,value即key.它是自动排序,排序特点依据key set的key不能相同.multiset的key相同.关联容器的查找效率要高于顺序容器很多很多. set和multiset不提供用来直接存取元素的任何操作函数,取值需要通过迭代器 一 定义 1.set/mulitiset以红黑树为底层结构,因此有元素自动排序的特性,排序是根据key,而set.m

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

标准模板库(STL)学习探究之vector容器  C++ Vectors vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库.vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据.为了可以使用vector,必须在你的头文件中包含下面的代码:#include <vector>构造函数. Vectors 包含着一系列连续存储的元素,其行为和数组类

STL标准库-容器-list

摘要: 技术在于交流.沟通,本文为博主原创文章转载请注明出处并保持作品的完整性. list 表示非连续的内存区域,并通过一对指向首尾元素的指针双向链接起来,从而允许向前和向后两个方向进行遍历.在list 的任意位置插入和删除元素的效率都很高. 它的结构 一 定义 头文件 #include <vector> #include <iostream> #include <list> using namespace std; int main(int argc, const c