坚持学习100天:大锅炖菜(表、集、队、栈、映)

前言

Hello,我是修齊。
学习C++的第一百零一十九天,学习吧,学习吧,用心学习吧。
在这里记录一些学习的东西和学习的心情,内容主要是一些自己学习整理的小笔记。

一、列表list

1.列表也是容器类的一种,控制的长度为N的序列是以一个有着N个节点的双向链表来存储的,支持双向迭代器,预编译头文件:#include
2。列表可以在链表中随意地插入和删除元素或是子链表,只需要改变前后的指针。
3.在列表中查找、随即存取,时间是线性增加的。
4.模板类list在异常处理中,容器 能够恢复到操作前的状态。
5.对任何容器,容器成员函数在执行中抛出的异常,使容器本身出于一种一致的状态,可以被销毁,并且容器没有对所分配的存储空间失去控制。
6.对操作能够影响多个元素的操作,抛出异常时,并没哟制定容器的精确状态。
7.列表的定义:

typedef list<T,allocator<T>>mycont;//使用默认模板参数,可以省略第二个参数
class TMyClass;
typedef list<TMyClass>TMyClassList;//用于存放对象的list容器
typedef list<TMyClass*>TMyClassPtrList;//用于存放对象指针的list

9.包含的成员函数:
resize:被控序列的长度改为只容纳N个元素,超出的元素被删除,如需扩展默认值为T()的元素会被放到序列末端
clear:删除所有元素
front,back:存取被控序列的第一个元素;存取被控序列的最后一个元素。
push_back:向对象末端插入值为x的元素,push_front为对象开始处插入元素;pop_back删除最后一个元素;pop_front删除第一个元素;序列不为空
assign:被控序列替换成由(first,last)所指定的序列,且不能为原序列的一部分。
insert:在迭代器it指定的元素前插入一个元素,返回值是一个迭代器,指向刚插入的元素,也可插入一个序列。
erase:删除it所指定的元素,返回值为一个迭代器,指向下一个元素,也删除一个区间。
splice:一系列的列表节点接入到一个列表中,被接入的节点列表被删除,接入操作中没有元素复制,将节点中指针改写:
cont.splice(it,cont2)把对象cont2中所有内容接入,两对象不同;
cont.splice(it,cont2,p)将对象cont2中迭代器p指定的节点接入到由迭代器it指定的节点前面,两对象可相同;
cont.splice(it.cont2,first,last)将cont2中指定的序列接入到迭代器it所指定的元素前,两对象可相同,但it不能是序列一部分,两列表拥有的分配器对象需相等。
remove:删除所有值等于v的元素;remove_if删除所有pr(x)为true的元素x;//在STL中比较特殊的它真正地删除了元素-b-。
unique:删除指定范围内相同的元素,//STL中特殊: - - #
sort:将序列排列,结果序列按operator<排序的,操作中用到了接入操作,可以将pr作为排序函数。
merge:两有序排序序列合并,合并用到接入操作,合并后第二个序列将为空,可用pr替换序列函数。
reverse:翻转整个序列。

二、集合set

1.集合set也是一容器,特点是:集合中的元素是唯一的,所有成员排列好。
2.多集multiset可以出现副本键,同一值可以出现多次。
3.集合插入会排序、删除重复元素值的字符串元素序列。

#include<string>
#include<set>
#include<iostream>
using namespace std;
int main(int argc,char*argv[])
{
   
   set<string>strset;//定义变量
   set<string>::iterator si;
   strset.insert("cantaloupes");//调用函数插入数据到集合
   strset.insert("apple");
   strset.insert
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值