C++ STL vector(向量)
生活随笔
收集整理的這篇文章主要介紹了
C++ STL vector(向量)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
轉(zhuǎn)自博客園:https://www.cnblogs.com/zhonghuasong/p/5975979.html
介紹
用法
1.頭文件
#include<vector>2. vector聲明及初始化
vector<int> vec; //聲明一個(gè)int型向量 vector<int> vec(5); //聲明一個(gè)初始大小為5的int向量 vector<int> vec(10, 1); //聲明一個(gè)初始大小為10且值都是1的向量 vector<int> vec(tmp); //聲明并用tmp向量初始化vec向量 vector<int> tmp(vec.begin(), vec.begin() + 3); //用向量vec的第0個(gè)到第2個(gè)值初始化tmp int arr[5] = {1, 2, 3, 4, 5}; vector<int> vec(arr, arr + 5); //將arr數(shù)組的元素用于初始化vec向量 //說(shuō)明:當(dāng)然不包括arr[4]元素,末尾指針都是指結(jié)束元素的下一個(gè)元素, //這個(gè)主要是為了和vec.end()指針統(tǒng)一。 vector<int> vec(&arr[1], &arr[4]); //將arr[1]~arr[4]范圍內(nèi)的元素作為vec的初始值3. vector基本操作
(1). 容量
- 向量大小: vec.size();
- 向量最大容量: vec.max_size();
- 更改向量大小: vec.resize();
- 向量真實(shí)大小: vec.capacity();
- 向量判空: vec.empty();
- 減少向量大小到滿足元素所占存儲(chǔ)空間的大小: vec.shrink_to_fit(); //shrink_to_fit
(2). 修改
- 多個(gè)元素賦值: vec.assign(); //類似于初始化時(shí)用數(shù)組進(jìn)行賦值
- 末尾添加元素: vec.push_back();
- 末尾刪除元素: vec.pop_back();
- 任意位置插入元素: vec.insert();
- 任意位置刪除元素: vec.erase();
- 交換兩個(gè)向量的元素: vec.swap();
- 清空向量元素: vec.clear();
(3)迭代器
- 開(kāi)始指針:vec.begin();
- 末尾指針:vec.end(); //指向最后一個(gè)元素的下一個(gè)位置
- 指向常量的開(kāi)始指針: vec.cbegin(); //意思就是不能通過(guò)這個(gè)指針來(lái)修改所指的內(nèi)容,但還是可以通過(guò)其他方式修改的,而且指針也是可以移動(dòng)的。
- 指向常量的末尾指針: vec.cend();
(4)元素的訪問(wèn)
- 下標(biāo)訪問(wèn): vec[1]; //并不會(huì)檢查是否越界
- at方法訪問(wèn): vec.at(1); //以上兩者的區(qū)別就是at會(huì)檢查是否越界,是則拋出out of range異常
- 訪問(wèn)第一個(gè)元素: vec.front();
- 訪問(wèn)最后一個(gè)元素: vec.back();
- 返回一個(gè)指針: int* p = vec.data(); //可行的原因在于vector在內(nèi)存中就是一個(gè)連續(xù)存儲(chǔ)的數(shù)組,所以可以返回一個(gè)指針指向這個(gè)數(shù)組。這是是C++11的特性。
(5)算法
- 遍歷元素
- 元素翻轉(zhuǎn)
- 元素排序
參考文獻(xiàn):
vector官網(wǎng)
博客園vector博客
轉(zhuǎn)載于:https://www.cnblogs.com/Luvwgyx/p/8448239.html
總結(jié)
以上是生活随笔為你收集整理的C++ STL vector(向量)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: gitattributes手册
- 下一篇: NEO从源码分析看网络通信