首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C++ STL vector 常用操作速查指南

     編輯:關於C語言

創建與初始化

vector v1;              // 空容器
vector v2(10);          // 10 個預設值 0
vector v3(10, 2);       // 10 個值為 2
vector v4(v3);          // 拷貝構造
vector v5(v3.begin(), v3.end());  // 區間構造

容量與大小

v.size();        // 元素個數
v.capacity();    // 已分配容量
v.empty();       // 是否為空
v.resize(n);     // 改變大小(不足補 0,超出截斷)
v.reserve(n);    // 預留容量(避免頻繁擴容)
v.shrink_to_fit(); // C++11 釋放多餘容量

元素訪問

v[i];            // 無邊界檢查
v.at(i);         // 有邊界檢查(越界拋出異常)
v.front();       // 首元素
v.back();        // 尾元素
v.data();        // C++11 返回底層數組指針

修改操作

v.push_back(val);      // 尾部插入
v.pop_back();          // 尾部刪除
v.insert(pos, val);    // 指定位置插入
v.erase(pos);          // 刪除單個
v.erase(first, last);  // 刪除區間
v.clear();             // 清空
v.swap(other);         // 交換內容(O(1))

比較運算

v1 == v2;  // 元素逐一比較
v1 != v2;
v1 < v2;   // 字典序比較
v1 <= v2;  v1 > v2;  v1 >= v2;

遍歷方式

// 範圍 for (C++11)
for (auto &x : v) { ... }

// 迭代器
for (auto it = v.begin(); it != v.end(); ++it) { ... }

// 索引
for (size_t i = 0; i < v.size(); ++i) { ... }

性能提示

  • 頻繁 push_back 前先 reserve,減少擴容拷貝。
  • 中間插刪 O(n),若大量操作考慮 list 或 deque。
  • vector 是特化位壓縮容器,行為與普通 vector 不同,謹慎使用。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved