4、容器

  • Vector
  • Deque
  • List
  • Set and Multiset
  • Map and Multimap
  • stack
  • Queue
    主要介绍:Vector和List
    一、Vector(1)
    vector 是一种支持动态空间大小调整的动态数组(相比较于数组而言)
    Vector(2)
    在这里插入图片描述
    其中的拷贝std::vectorcopyOdv(v);//所以vector也是类模板
    vector(3)
    添加元素:push_back()//将元素加到尾部
    vector(4)
    判断是否为空empty()
    获取vector大小size()
    vector(5)
    访问元素两种方式:
    ①at():进行边界检查,访问越界会抛出异常
    ②[]重载操作符,访问效率高,不会检查越界问题
    vector(9)
    删除vector中元素,erase()函数
    首先介绍algorithm头文件中的remove_if函数,
v.erase(std:remove_if(
		v.begin(),//iterator,一个指针指向vector首部
		v.end(),//iterator,一个指针指向vector首部
		ContainString(L"C++")//条件函数
		),v.end());

remove_if是否整整remove了vector中的元素呢?
答案是否定的
在这里插入图片描述
其实是erase函数删掉了ContainString()中得到的iterator中的元素。

二、Deque(1)
双向队列,Deque采用了大块分配内存的方法。

三、List(1)
双向链表
在内存中不是连续分配
优点:插入、删除、替换效率极高
缺点:查找、存取等定位操作,效率低。
小结:可以更加实际应用对于操作的要求来使用链表,例如:如果查、存取用的少,插、删、换用的多就可以考虑用链表
指定iterator:
std::liststd::wstring::const_iterator it = I.begin();//指定list首部的迭代器指针。

粘连list(splice)
list1粘连到list2的头部,同时list2被清空
std::liststd::wstring::const_iterator it1 = list1.begin();//迭代器看做定位功能
list1.splice(it1,list2);
在这里插入图片描述
在这里插入图片描述
splice(要粘连到目标链表的位置,源链表,原链表的索引)
迭代器t产生的结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值