3.2.1 vector基本概念
功能:
vector與普通陣列區別:
動態擴充套件:
[外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳(img-wnjcge4s-1615014786757)(assets/clip_image002.jpg)]
3.2.2 vector建構函式
功能描述:
函式原型:
示例:
#include void printvector(vector& v)
cout << endl;
}void test01()
printvector(v1);
vectorv2(v1.begin(), v1.end());
printvector(v2);
vectorv3(10, 100);
printvector(v3);
vectorv4(v3);
printvector(v4);
}int main()
**總結:**vector的多種構造方式沒有可比性,靈活使用即可
3.2.3 vector賦值操作
功能描述:
函式原型:
示例:
#include void printvector(vector& v)
cout << endl;
}//賦值操作
void test01()
printvector(v1);
vectorv2;
v2 = v1;
printvector(v2);
vectorv3;
v3.assign(v1.begin(), v1.end());
printvector(v3);
vectorv4;
v4.assign(10, 100);
printvector(v4);
}int main()
總結: vector賦值方式比較簡單,使用operator=,或者assign都可以
3.2.4 vector容量和大小
功能描述:
函式原型:
示例:
#include void printvector(vector& v)
cout << endl;
}void test01()
printvector(v1);
if (v1.empty())
else
//resize 重新指定大小 ,若指定的更大,預設用0填充新位置,可以利用過載版本替換預設填充
v1.resize(15,10);
printvector(v1);
//resize 重新指定大小 ,若指定的更小,超出部分元素被刪除
v1.resize(5);
printvector(v1);
}int main()
總結:
3.2.5 vector插入和刪除
功能描述:
函式原型:
示例:
#include void printvector(vector& v)
cout << endl;
}//插入和刪除
void test01()
int main()
總結:
3.2.6 vector資料訪問
功能描述:
函式原型:
示例:
#include void test01()
for (int i = 0; i < v1.size(); i++)
cout << endl;
for (int i = 0; i < v1.size(); i++)
cout << endl;
cout << "v1的第乙個元素為: " << v1.front() << endl;
cout << "v1的最後乙個元素為: " << v1.back() << endl;
}int main()
總結:
3.2.7 vector互換容器
功能描述:
函式原型:
示例:
#include void printvector(vector& v)
cout << endl;
}void test01()
printvector(v1);
vectorv2;
for (int i = 10; i > 0; i--)
printvector(v2);
//互換容器
cout << "互換後" << endl;
v1.swap(v2);
printvector(v1);
printvector(v2);
}void test02()
cout << "v的容量為:" << v.capacity() << endl;
cout << "v的大小為:" << v.size() << endl;
v.resize(3);
cout << "v的容量為:" << v.capacity() << endl;
cout << "v的大小為:" << v.size() << endl;
//收縮記憶體
vector(v).swap(v); //匿名物件
cout << "v的容量為:" << v.capacity() << endl;
cout << "v的大小為:" << v.size() << endl;
}int main()
總結:swap可以使兩個容器互換,可以達到實用的收縮記憶體效果
3.2.8 vector預留空間
功能描述:
函式原型:
示例:
#include void test01()
} cout << "num:" << num << endl;
}int main()
總結:如果資料量較大,可以一開始利用reserve預留空間
提高Vector容器的刪除效率
vector容器是類似與乙個線性陣列,索引效率高,插入,刪除的效率很低,需要遍歷資料列表,一般情況下vector的刪除操作由一下函式完成 iterator erase iterator position 刪除乙個位置iterator erase iterator first,iterator las...
C 容器vector 理解
通過設定一些模版類,stl容器對最常用的資料結構提供了支援,這些模板的引數允許我們指定容器中元素的資料型別,可以將我們許多重複而乏味的工作簡化。與string 類一樣vector 類是隨標準c 引入的標準庫的一部,為了使用vector 我們必須包含相關的標頭檔案。向量 vector 連續儲存的元素 ...
C 提高程式設計(2 1) string容器
3.1.1 string基本概念 本質 string和char 區別 特點 string 類內部封裝了很多成員方法 例如 查詢find,拷貝copy,刪除delete 替換replace,插入insert string管理char 所分配的記憶體,不用擔心複製越界和取值越界等,由類內部進行負責 3....