C++ std::vector 基本用法

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

  

猜你喜欢

转载自www.cnblogs.com/alexYuin/p/12026257.html