首页 > 编程语言 >C++容器4 关联容器

C++容器4 关联容器

时间:2023-06-06 22:57:27浏览次数:42  
标签:容器 迭代 元素 C++ 关联 插入 内存

  1. 关联容器的类型

  2. 定义关联容器

  3. pair

  4. 关联容器的类型别名

     set的解引用是常量,

  5. 添加元素

     map和set适合关键字不存在才插入,不会更改关键字的值。你可以随便取出一个元素的值,也可以随便删除,但不能随便修改,因为红黑树也就平衡树的特性决定了修改特别麻烦,改变了值,他们关联的位置也不再有效

  6. 删除元素

     迭代器P指向尾元素是说最后一个元素,它的下一个元素当然就是end

  7. 查找元素  查找元素返回的都是迭代器,换言之,都是指针

     不小于就是大于等于

  8. 无序容器  插入或删除一个元素的时间复杂度是O1,常量非常快

  9. 如何输出末尾不带空格的一组容器元素

     还得是下标 直接其取值恐怕有重复

  10. 如何去重

  11. 为甚莫需要map
    1.   我们可以用数组模拟映射关系,数组下标表示编号,值保存成绩,但是像大学里的学号就要开很大的数组

    2. map就像Python里面万能的字典列表

       有时候也叫关联数组

  12. insert

     将元素添加到末尾——插入迭代器,看起来是迭代器实际上是pushback

  13. 文件流迭代器  不会用

     最大的方便是使输入输出流变成迭代器,也能通用泛型算法,例如copy

  14. 在彻底了解文件流迭代器之前,再探迭代器
    1.  在需要迭代器参数的时候用插入器,插入器构造需要一个容器如vector做底子

    2. 流迭代器的分类

       与前向迭代器不同的是输入输出流是线性易逝的,一次性的,只能迭代一遍,输入了就没了,但是前向迭代器可以反反复复地扫

    3. 容器不是迭代器!容器提供迭代器!
  15. 链表成员操作

     

  16. 空间配置器
    1. 用new分配内存,用delete释放内存?
    2. 移动后,未使用的内存是否应该被构造

       内存的分配和构造应该分离

    3. 内存的一块一块整体分配,如果pop一个元素,是否应该释放一个内存?实际上你根本没办法释放。所以对象析构和内存释放应该分开
    4. new和delete一定区分不开同时
    5. 程序设计者想自己搞一套内存管理办法
    6. 空间配置器就提供这个统一的接口

       被弃用现在参见traits STL源码剖析

       

标签:容器,迭代,元素,C++,关联,插入,内存
From: https://www.cnblogs.com/lvshy/p/17461982.html

相关文章

  • C++面试八股文:static和const的关键字有哪些用法?
    某日二师兄参加XXX科技公司的C++工程师开发岗位第7面:面试官:C++中,static和const的关键字有哪些用法?二师兄:satic关键字主要用在以下三个方面:1.用在全局作用域,修饰的变量或者函数为静态的,限制在本文件内使用。2.方法内修饰修饰静态局部变量,在第一次访问的时候初始化。3.内类修饰......
  • c++关于 左右值 和 左右值引用 及 函数参数(万能引用,引用折叠,forward完美转发)
    左右值和左右值引用是有区别的。左右值是指对变量类别的区分,左值是有地址的值,可以长期存在;而右值是将亡值,是临时量,没有名字。而左右值引用是指变量的类型,如int&,int&&等,下面举一个例子:voidfunc(int&p){cout<<"&p"<<endl;return;}voidfunc(int&&p){......
  • c++ 关于函数返回值问题
    c++中,当函数返回基本元素时,一般不会产生异常情况。但是当返回引用或指针时,即不使用值传递而是引用或指针传递来实现,那么需注意:不能返回函数内部的局部变量指针或引用。因为局部变量是在栈上,当离开函数作用域时,其内容会失效,相应的返回的指针或引用指向的内容就没有意义了。不能返......
  • docker连接两个容器的网络
    项目结构描述首先是数据库部分使用了一个docker-compose.yml然后web部分使用了一个docker-compose.yml由于项目架构较为复杂,所以分为两部分现需要将两部分网络连接起来,使其相互之间能够通过container-name访问具体操作:首先查看数据库部分的容器所在的网络名字(不要猜:)......
  • [c++实践]关于标准库中字符串的高效处理
    [c++实践]关于标准库中字符串的高效处理无论什么程序,都需要大量的使用字符串,c++标准库提供了std::string对字符串进行处理。熟悉std::string实现逻辑的都知道,std::string库比较耗时的操作主要在内存的分配与字符串的拼接。因为内存分配实际上还是使用的malloc,但是在多线程......
  • 关联规则二项集hadoop实现
    近期看mahout的关联规则源码,颇为头痛,本来打算写一个系列分析关联规则的源码的,但是后面看到有点乱了,可能是稍微有点复杂吧,所以就打算先实现最简单的二项集关联规则。算法的思想还是参考上次的图片:这里实现分为五个步骤:针对原始输入计算每个项目出现的次数;按出现次数从大到小(排除出现......
  • 使用mahout做海量数据关联规则挖掘
     mahout是一个基于hadoop的分布式数据挖掘开源项目(mahout本来是指一个骑在大象上的人)。掌握了关联规则的基本算法和使用,加上分布式关联规则挖掘后,就可以处理基本的关联规则挖掘工作了,实践中只需要把握业务,理解数据便可游刃有余。安装mahout骑在大象上的侠士必然需要一头雄纠纠......
  • C++ 中的 String 类
     C++标准库提供了 string 类类型,支持上述所有的操作,另外还增加了其他更多的功能。我们将学习C++标准库中的这个类,现在让我们先来看看下面这个实例:现在您可能还无法透彻地理解这个实例,因为到目前为止我们还没有讨论类和对象。所以现在您可以只是粗略地看下这个实例,等理解了......
  • C++中的显式构造函数
      有如下一个简单的复数类:classClxComplex{public:ClxComplex(doubledReal=0.0,doubledImage=0.0){m_dReal=dReal;dImage=dImage;}doubleGetReal()const{returnm_dReal;}doubleGetImage()const{retu......
  • C++类构造函数、拷贝构造函数、复制构造函数、复制构造函数、构造函数显示调用和隐式
    一、构造函数是干什么的 1.2.{3.public:4.//类Counter的构造函数5.//特点:以类名作为函数名,无返回类型6.Counter()7.{8.0;9.}10.private:11.//数据成员12.intm_value;13.}      该类对......