首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

参考对象的STL容器

相关·内容

【C++】STL 标准模板库 ③ ( STL 容器简介 | STL 容器区别 | STL 容器分类 | 常用 STL 容器 )

一、STL 容器简介 1、STL 容器区别 STL 容器 用于管理 一组 数据元素 , 不同类型 STL 容器 区别 主要是 节点 和 节点之间关系模型 不同 ; 容器内存空间是否连续 : 向量...vector 内存空间是连续 , 列表 List 内存空间是不连续 ; 容器元素节点关系 : 顺序排列 , 单向链表 , 双向链表 , 树形关系 ; 容器元素是否允许重复 : 集合 Set...主要是 研究 节点 与 节点 之间关系 ; 2、STL 容器分类 STL 容器 分为 2 大类 , 分别是 " 序列式容器 " 和 " 关联式容器 " ; 序列式容器 : Sequence Containers..., 多重集合 MultiSet , 映射 Map , 多重映射 MultiMap 是 关联式容器 ; 如下图所示 , 关联式容器元素位置与特定规则有关 , 与插入时间和位置无关 ; 3、常用 STL...容器 常用 STL 容器 : 向量 vector : 是连续存储元素 , 其内存是连续 ; 可以 访问和修改任意元素 , 但在 序列尾部 进行 插入 和 删除时 , 具有常量时间复杂度 ; 需导入

75230
  • 【C++】STL 标准模板库 ② ( STL 标准模板库组成 | STL 十三个头文件 | STL 六大组件 | STL 容器存放基础数据类型 | STL 容器存放类对象 | 容器存放对象指针 )

    是通过 迭代器 进行关联 ; 所有的 C++ 程序都会使用到 STL 标准模板库 , 使用 STL 提供容器更加快速地开发程序代码 ; STL 标准模板库 头文件 中 内置了 各种常用 存储数据模板类..." using namespace std; // 使用 STL 容器 vector 向量容器需要导入头文件 #include "vector" // 使用 STL 算法需要导入头文件 #...三、代码示例 - STL 容器存放自定义类对象 代码示例 : #include "iostream" using namespace std; // 使用 STL 容器 vector 向量容器需要导入头文件...四、代码示例 - STL 容器存放对象指针 代码示例 : #include "iostream" using namespace std; // 使用 STL 容器 vector 向量容器需要导入头文件...容器 // 声明 vector 向量容器 vector v; // 向容器中添加元素, 相当于将 指针地址值 拷贝到容器中 // 指针地址值 就是 三个对象内存首地址

    91031

    STL容器区别

    小结 我们常用到STL容器有vector、list、deque、map、multimap、set和multiset,它们究竟有何区别,各自优缺点是什么,为了更好扬长避短,提高程序性能,在使用之前需要我们了解清楚...此外,当被插入内存空间不够时,需要重新申请一块足够大内存并进行内存拷贝。值得注意是,vector每次扩容为原来两倍,对小对象来说执行效率高,但如果遇到大对象,执行效率就低了。...map map类似于数据库中1:1关系,它是一种关联容器,提供一对一(C++ primer中文版中将第一个译为键,每个键只能在map中出现一次,第二个被译为该键对应值)数据处理能力,这种特性了使得...multimap multimap类似于数据库中1:N关系,它是一种关联容器,提供一对多数据处理能力。...---- 小结 在实际使用过程中,到底选择这几种容器哪一个,应该根据遵循以下原则: 1、如果需要高效随机存取,不在乎插入和删除效率,使用vector; 2、如果需要大量插入和删除元素

    1K40

    【C++】STL 容器 - STL 容器值语意 ( 容器存储任意类型元素原理 | STL 容器元素可拷贝原理 | STL 容器元素类型需要满足要求 | 自定义可存放入 STL 容器元素类 )

    一、STL 容器 值 ( Value ) 语意 1、STL 容器存储任意类型元素原理 C++ 语言中 STL 容器 , 可以存储任何类型元素 , 是因为 STL 容器 使用了 C++ 模板技术进行实现..., 假如 在外部 该 指针 / 引用 指向对象被回收 , 那么容器操作就会出现问题 ; STL 容器 中 , 存储元素 , 必须是可拷贝 , 也就是 元素类 必须提供 拷贝构造函数 ; 3、STL...容器元素类型需要满足要求 STL 容器元素类型需要满足要求 : 提供 无参 / 有参 构造函数 : 保证可以创建元素对象 , 并存放到容器中 ; 提供 拷贝构造函数 : STL 容器元素是可拷贝..., 这是容器操作基础 ; 提供 重载 = 操作符函数 : STL 容器元素可以被赋值 ; 4、STL 容器迭代器遍历 除了 queue 队列容器 与 stack 堆栈容器 之外 , 每个 STL...容器元素类 1、代码示例 STL 容器元素类型需要满足要求 : 提供 无参 / 有参 构造函数 : 保证可以创建元素对象 , 并存放到容器中 ; 提供 拷贝构造函数 : STL 容器元素是可拷贝

    13810

    STL——stack容器和queue容器详解

    ---- stack 基本概念 栈(stack):一种特殊线性表,其只允许在固定一端进行插入和删除操作。在进行数据插入和删除一端称为栈顶,另一端称为栈底。...栈中元素都遵循后进先出原则(LIFO,Last In First Out)。 压栈:栈插入操作叫做进栈/压栈/入栈,入数据在栈顶。 出栈:栈删除操作叫做出栈。出数据也在栈顶。...生活中栈例子: 常用接口 功能描述: 栈容器常用对外接口 构造函数: stack stk; //stack采用模板类实现, stack对象默认构造形式 stack(const...,队列具有先进先出 FIFO(First In First Out) 入队列:进行插入操作一端称为队尾 出队列:进行删除操作一端称为队头 常用接口 功能描述: 栈容器常用对外接口 构造函数...: queue que; //queue采用模板类实现,queue对象默认构造形式 queue(const queue &que); //拷贝构造函数 赋值操作

    11310

    c++STL容器之list容器

    物理存储单元上非连续存储结构,数据元素逻辑顺序是通过链表中指针链接进行实现STL链表是一个双向循环链表。...一、构造函数 list lst; list(bag,end); list(n,elem); list(const list &list); 二、list赋值和交换 assign(beg,end)...,返回新数据位置 insert(pos,n,ele)//向指定索引位置插入n个元素,无返回值 insert(pos,beg,end)//在pos位置插入区间为[beg,end]之间元素,无返回值...clear()//移除所有数据 erase(pos)//删除指定索引元素 erase(start,end)//删除start到end之间元素 remove(ele);//删除指定元素 五、数据存取...push_back(2); lst1.push_back(1); lst1.push_back(3); //反转 lst1.reverse(); //所有不支持随机访问迭代器容量

    35810

    c++STL容器之deque容器

    deque和vector区别: vector对于头部插入和删除效率低,数据量越大,效率越低; deque相对于而言,对头部插入和删除比vector快; vector访问元素时速度比deque快,这和两者内部实现有关...; deque内部工作原理: deque内部有个中控器,维护每段缓冲区中内容,缓冲区中存放着真实数据。...中控器维护是每个缓冲区地址,使得使用每个deque时像一块连续内存空间。 deque容器迭代器是支持随机访问。...insert(pos,n,ele); insert(pos,beg,end); clear(); erase(beg,end); erase(pos); 五、deque数据存取(与vector一致,多了取头部操作...at(0); 修改第一个元素: d1[0] = 2; d1.at(0) = 2; 访问首元素: d1.front(); 访问尾元素: d1.back(); 六、deque排序(利用algorithm中sort

    39410

    C++STL容器stack

    3.5 stack容器 3.5.1 stack 基本概念 概念:stack是一种先进后出(First In Last Out,FILO)数据结构,它只有一个出口 栈中只有顶端元素才可以被外界使用,...因此栈不允许有遍历行为 栈中进入数据称为 — 入栈 push 栈中弹出数据称为 — 出栈 pop 生活中栈: 子弹弹夹,拥挤地铁 3.5.2 stack 常用接口 功能描述:栈容器常用对外接口...构造函数: stack stk; //stack采用模板类实现, stack对象默认构造形式 stack(const stack...示例: #include //栈容器常用接口 void test01() { //创建栈容器容器必须符合先进后出 stack s; //向栈中添加元素,叫做 压栈...s.empty()) { //输出栈顶元素 cout << "栈顶元素为: " << s.top() << endl; //弹出栈顶元素 s.pop(); } cout << "栈大小为

    23640

    C++STL容器总结

    序列式容器才可以在容器初始化时候制定大小,关联式容器不行; 3.注意,关联容器迭代器不支持it+n操作,仅支持it++操作。...2) 当删除元素时,不会释放限制空间,所以向量容器容量(capacity)大于向量容器大小(size); (3) 对于删除或插入操作,执行效率不高,越靠后插入或删除执行效率越高; (4) 高效随机访问容器...2.创建vecotr对象: (1) vector v1; (2) vector v2(10); 3.基本操作: v.capacity(); //容器容量 v.size...; merge()函数功能是:将两个容器合并,合并成功后会按从小到大顺序排列; 比如:lt1.merge(lt2); lt1容器元素全都合并到容器lt2中。...创建pair对象: pair p1; //调用构造函数来创建pair对象 make_pair(1,1.2); //调用make_pair()函数来创建pair对象

    76710
    领券