c++--vector容器(動態擴展數組)


void printVector(vector<int>& v)
{
	for (vector<int>::iterator it = v.begin();it != v.end();it++)
		cout << (*it)<<" ";//it類似指針 
		
	cout << endl;
}

 

	//默認無參構造
	vector<int> v1;

	for (int i = 0;i < 10;i++)
		v1.push_back(i);

	printVector(v1);

	//區間拷貝構造
	vector<int> v2(v1.begin(), v1.end());
	printVector(v2);

	//n個element方式構造
	vector<int> v3(10, 100);//傳入10個100
	printVector(v3);

	//拷貝構造
	vector<int> v4(v3);
	printVector(v4);
	

	
	//賦值操作
	vector<int> v1;
	for (int i = 0;i < 10;i++)
		v1.push_back(i);
	printVector(v1);

	//等號賦值操作
	vector<int> v2;
	v2 = v1;
	printVector(v2);

	//assign賦值
	vector<int> v3;
	v3.assign(v2.begin(), v2.end());
	printVector(v3);
	//assign n個相同元素賦值
	vector<int> v4;
	v4.assign(10, 99);
	printVector(v4);
	

	
	//容器的容量和大小操作
	vector<int> v1;
	for (int i = 0;i < 10;i++)
		v1.push_back(i);
	printVector(v1);

	if (v1.empty())  //爲真代表容器爲空
		cout << "v1空" << endl;
	else
		cout << "v1不爲空" << endl;
	
	cout << "v1的容量爲" << v1.capacity() << endl;
	cout << "v1的大小爲" << v1.size() << endl;
	
	v1.resize(15,10);//重新指定大小,可指定默認填充值
	printVector(v1);
	cout << "v1的容量爲" << v1.capacity() << endl;
	cout << "v1的大小爲" << v1.size() << endl;
	
	v1.resize(5);
	printVector(v1); //重指定變短了,則會刪除後面多的數據
	

	
	//容器的刪除和插入//
	vector<int> v1;
	for (int i = 0;i < 10;i++)
		v1.push_back(i); //尾插法插入數據
	printVector(v1);

	//尾刪法
	v1.pop_back(); //刪除末尾的元素
	printVector(v1);

	//插入
	v1.insert(v1.begin(), 100); //再開始處插入100 第一個參數是迭代器
	printVector(v1);

	v1.insert(v1.begin(),2,1000); //再開始處插入2個1000 第一個參數是迭代器
	printVector(v1);

	v1.insert(v1.begin()+2, 2, 5 ); //再第三個元素處插入2個5 第一個參數是迭代器
	printVector(v1);

	//刪除
	v1.erase(v1.begin()); //刪除頭的第一個元素
	printVector(v1);

	v1.erase(v1.begin(),v1.end()); //刪除所有元素 輸出會變成換行
	printVector(v1); 
	


	
	//vector容器中數據獲取//
	vector<int> v1;
	for (int i = 0;i < 10;i++)
		v1.push_back(i); 
	
	//利用[]方式訪問數組中元素
	for (int i = 0;i < v1.size();i++)
		cout << v1[i] << " ";
	cout << endl;

	//利用at方式訪問元素
	for (int i = 0;i < v1.size();i++)
		cout << v1.at(i)<<" ";
	cout << endl;

	//獲取第一個元素
	cout << "第一個元素爲: " << v1.front() << endl;
	//獲取最後一個元素
	cout << "最後一個元素爲: " << v1.back() << endl;
	

	//vector 互換容器//
	vector<int> v1;
	for (int i = 0;i < 10;i++)
		v1.push_back(i);
	printVector(v1);

	vector<int> v2;
	for (int i = 10;i >0;i--)
		v2.push_back(i);
	printVector(v2);

	cout << "交換後容器數據" << endl;

	v1.swap(v2); //v1與v2進行交換
	printVector(v1);
	printVector(v2);
void test02()
{
	vector <int> v;
	for (int i = 0;i < 100000;i++)
		v.push_back(i);
	cout << "v的容量 : " << v.capacity() << endl;
	cout << "v的大小 : " << v.size() << endl;

	//重新指定大小
	v.resize(3);
	cout << "v的容量 : " << v.capacity() << endl;
	cout << "v的大小 : " << v.size() << endl;

	vector<int>(v).swap(v); //利用swap收縮空間 (v)這樣創建相當於匿名對象,拷貝v元素的內容
	cout << "v的容量 : " << v.capacity() << endl;
	cout << "v的大小 : " << v.size() << endl;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章