網(wǎng)站首頁 編程語言 正文
C++vector 用法整理
1.頭文件
#include<iostream>//容器 #include<vector> //算法 #include<iterator>//迭代器
一個(gè)代碼示例
#include<iostream>//容器 #include<vector> //算法 #include<iterator>//迭代器 using namespace std; int main(int argc, const char* argv[]) { const int SIZE = 6; int array[SIZE] = {1,2,3,4,5,6}; vector<int> v(array,array+SIZE); cout<<"First element:"<<v.front()<<"\n Last element"<<v.back()<<endl; }
2.vector初始化
定義十個(gè)整形元素的向量(其中初值不確定)
vector<int> a(10);
每個(gè)元素初值為1;
vector<int> a(10,1);
類似于深拷貝的整體賦值方式
vector<char> a(b); vector<char> a(b.begin(),b.begin+3);//(a的值為0~2個(gè)元素)
用數(shù)組賦初值(和上面一個(gè)有點(diǎn)相似)
vector<int> a(b, b+7);
3.vector對(duì)象的重要操作
1.賦值(assign)
a.assign(b.begin(),b.begin()+3); //注意!此處,將b 0~2個(gè)元素構(gòu)成的向量賦值給a!與上面不同! a.assign(4,2);// 與vector<int> a(10,1);結(jié)果相同
2.返回元素值
//返回最后一個(gè)元素 a.back(); //返回第一個(gè)元素 a.front(); //數(shù)組返回式 a[i];
3.清空、判斷是否為空
a.clear(); a.empty();
4.刪除
//刪除最后一個(gè)元素 a.pop_back(); //刪除一塊元素 a.erase(a.begin(),a.begin()+3);
5.插入
//在最后一個(gè)向量后插入一個(gè)元素 a.push_back(5); // 插入一段元素(從第一個(gè)元素算起,插入3個(gè)數(shù),值都為5) a.insert(a.begin(), 3, 5); //用數(shù)組插入一段元素(在a的第一個(gè)元素的位置插入b的第3個(gè)元素到第5個(gè)元素) a.insert(a.begin(), b+1,b+6); //從現(xiàn)有向量中選擇元素向向量中添加 int a[6] = {1, 2, 3, 4, 5, 6}; vector<int> b; wector<int> c(a, a+4); for(vector<int>::iterator it = c.begin(); it<c.end():it++) { b.push_back(*it); } //從文件讀取元素向向量中添加 ifstream in("data.txt"); vector<int> a; for(int i;in>>i) { a.push_back(i); }
6.返回vector的現(xiàn)存元素個(gè)數(shù)、共可容納個(gè)數(shù)
a.size(); a.c apacity();
7.調(diào)整元素個(gè)數(shù)(這個(gè)好牛)
//將元素個(gè)數(shù)調(diào)整至10,多刪少補(bǔ),補(bǔ)的值隨機(jī) a.resize(10); //將元素個(gè)數(shù)調(diào)整至10,多刪少補(bǔ),補(bǔ)的值為2 a.resize(10,2); //大容量擴(kuò)充(不補(bǔ)充值) a.reserve(100);
8.整體性交換
a.swap(b);
9.向量的比較操作
a==b; //還有 != >= <= > <
10.重要算法
//從小到大排列 sort(a.begin(), a.end()); //倒置但不排列 reverse(a.begin(),a.end()); //元素復(fù)制 copy(a.begin(),a.end(),b.begin()); //從某一區(qū)塊中查找元素值,返回位置 find(a.begin(),a.end(),10);
4.一些誤區(qū)
下標(biāo)只能獲取已存在的元素,不能進(jìn)行賦值操作
//錯(cuò)誤示例 vector<int> a; for(int i = 0;i<10;i++) a[i] = i;
總結(jié)
原文鏈接:https://blog.csdn.net/QiaoLiu___lq/article/details/122970365
相關(guān)推薦
- 2022-09-06 Python利用contextvars實(shí)現(xiàn)管理上下文變量_python
- 2023-02-23 GO中的條件變量sync.Cond詳解_Golang
- 2022-03-20 C語言初階之?dāng)?shù)組詳細(xì)介紹_C 語言
- 2022-12-01 Django+Ajax異步刷新/定時(shí)自動(dòng)刷新實(shí)例詳解_python
- 2022-12-01 C/C++細(xì)數(shù)宏與函數(shù)有那些區(qū)別_C 語言
- 2021-12-10 linux防火墻配置(基于yum倉的配置)詳細(xì)步驟_Linux
- 2022-11-10 android時(shí)間選擇控件之TimePickerView使用方法詳解_Android
- 2023-03-01 GoLang?Time時(shí)間操作函數(shù)講解_Golang
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支