SYSU程设c++(第十五周)

vector容器

1.要开vector库

        

2.vector<T> 是动态的连续数组,可以列表初始化

        

          vector<int> ivec(10, 2); //创建10个值为2的元素

3.可以靠[ ]、at(int)、front、back、迭代器访问其中元素,其中at会自动检查下标越界,抛出异常

  

4.迭代器

vector<int>::iterator iter; // 声明正向迭代器对象(+1向右)

vector<int>::reverse_iterator riter; // 声明反向迭代器对象(+1向左)

begin()指向首位,end指向末位后一个位置,rbegin()指向末位(对反向来说是首位),rend指向首位前一个位置(对反向来说是末位后一个)

 

auto和decltype

灵活使用 auto 和 decltype 可以减少程序对模板实参的依赖,提升程序通用性和可读性

例如 auto iter=ivec.begin()  或 decltype(ivec.begin()) iter;(声明从表达式推导得到的类型)

用迭代器遍历元素

 5.元素插入

        c.insert(iter, t) 在iter所指之前插入元素t

        c.insert(iter, n, t) 在iter所指之前插入n个元素t

        c.push_back(t) 在尾端插入元素t

        c.push_front(t) 在首端插入元素t //vector没提供front

6.元素删除

        c.clear() 删除所有

        c.erase(iter) 删除某位,并返回下一位常迭代器

        c.erase(b, e) 删除b~e的前一位,并返回下一位(e)常迭代器

        c.pop_back() 删除末位

        c.pop_front() 删除首位 //vector没提供front

7.容量操作

        c.empty() 若为空,返回true,否则false

        c.size() 返回元素个数

        c.resize(n) 将容器大小调为可放n个,多退少补

        c.resize(n, t) 补的话新增元素取值为t,其余效果相同

8.赋值和交换

        c1 = c2

        c.assign(n, t) 先删除c中所有,然后在c中存放n个值为t的元素

        c1.swap(c2)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值