#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
}
}