C++ 顺序容器库简介

一、引言

       C++标准库提供了几种顺序容器,所有顺序容器都提供了快速顺序访问元素的能力,但是,它们各自有不同的特性。新标准库的容器的性能有很大的提升,从某种程度讲,应该使用标准库容器,而不是原始的数据结构。

vector可变大小数组,比较常用
deque双端队列
list双向链表
forward_list单向链表
array固定大小数组
string保存字符串

 

二、容器的初始化

      假定C代表一种容器类型

C  c;默认构造函数。如果是array,则按默认方式初始化,否则为空。
C  c1(c2);构造c2的拷贝c1。容器、元素类型必须相同,array的大小也要相同。

C  c(b, e);

将迭代器b和e之间的元素拷贝到c。array不支持。
C  c{a, b, c, ....}列表初始化c。对于array,元素数目小于等于array大小,遗漏元素会被初始化。
C c(n)c包含n个元素,并进行初始化。此函数是explicit的。string不适用。
C c(n, t)c包含n个初始化值为t的元素。
vector<int> vec(6, 2);    //一个vector类型容器,元素为6个2
array<int, 5> arr(3, 2);  //一个array类型容器,3个2,剩余的进行初始化

 

三、顺序容器操作

(1)添加元素(array不适用,因为数目会发生改变)

c.push_back(t)在c末尾添加元素t
c.push_front(t)在c头部添加元素t
c.insert(p, t)在迭代器p前添加元素t
c.insert(p, n, t)在迭代器p前添加n个元素t
c.insert(p, b, e)在迭代器p前插入迭代器b和e之间的元素
c.insert(p, il)在迭代器p之前插入il中的元素,il是一个元素值列表

(2)访问元素

c.back()返回c中尾元素的引用
c.front()返回c中头元素的引用
c[n]返回下标n的元素的引用。list不适用
c.ar(n)返回下标n的元素的引用。

(3)删除元素(array不适用,因为数目会发生改变)

c.pop_back()删除 c中尾元素
c.pop_front()删除c中头元素
c.erase(p)删除迭代器p所指元素
c.erase(b, e)删除迭代器b、e之间的元素
c.clear()删除c中所有元素

注意,该种情况下,删除deque除头尾外任何元素,都会使所有迭代器、引用和指针失效;vector、string中删除点以后的迭代器、引用和指针会失效。

(4)改变容器大小

可以使用c.resize(n),调整容器大小为n个元素,多余的会被丢弃,新元素会被初始化                   //c.resize(n,t)  t为默认初始值

 

注意:forward_list有特殊的操作

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值