#include <iostream> #include <vector> using namespace std; int main() { // 初始化的方式 std::vector<int> vec1; //std::vector<int> vec2(1750000);// 7G std::vector<int> vec2(1*1024*1024*1024*1/4, 1);// 1G std::vector<int> vec3; vec3.assign(10,0); std::vector<int> vec4; vec4.resize(10); bool is = vec2 == vec3; // 使用数组初始化 int ar[10] = {1,2,3,4,5,6,7,8,9,0}; std::vector<int> vec5(ar, ar+10); // 深拷贝 std::vector<int> vec6(vec5); vec6[5] = 777; // 深拷贝 std::vector<int> vec7 = vec5; vec7[5] = 777; // 取值 at 与 [] try { auto a1 = vec7.at(110); // 低效率,带检查。异常可以被捕捉。 invalid vector<T> subscript //auto a2 = vec7[110]; // 高效率,没检查。程序直接崩溃。 } catch (const std::exception& e) { cout << e.what() << endl; } int v_back = vec7.back(); int v_frone = vec7.front(); vec7.pop_back(); // 去除最后一个元素 vec7.push_back(999); vec2.clear(); { size_t v_capa = vec2.capacity();// = 268,435,456,约 1G 内存 size_t v_size = vec2.size(); // = 0 } vec2.shrink_to_fit(); // 此法释放内存。但是书上说并非每次都可以奏效。 { size_t v_capa = vec2.capacity();// = 0 size_t v_size = vec2.size(); // = 0 } }