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

6.元素删除

        c.clear() 删除所有

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

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

        c.pop_back() 删除末位

        c.pop_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)

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>