vector部分容器操作及部分泛型算法

vector部分容器操作及部分泛型算法

#include<iostream>
#include<vector>
#include <algorithm>
using namespace std;
int main(){
    vector<int> prepare1 { 10,56,87,92,31 };	//列表初始化
	vector<int> prepare2 (5,88);				//拷贝初始化
	vector<int> prepare3;
	vector<int> nums;
	vector<int> temp;
    
    swap(prepare1, prepare2);	//.swap()函数
	if (prepare3.empty())		//.empty()函数
	{
		prepare3 = prepare1;				//拷贝替换(不是初始化)
		prepare3 = { 24,99,78,86,45 };		//替换(不是初始化)
	}
    for (int i = 0; i < prepare1.size(); i++)
	{ // 常用: .size()函数 及 .push_back函数
		nums.push_back(prepare1[i]);
		nums.push_back(prepare2[i]);
		nums.push_back(prepare3[i]);
	}
    temp.assign(nums.begin(),nums.end());	//assign函数复制
    
    /******* 部分泛型算法 ********/	
	fill(nums.begin(), nums.end(), 0);				//填充算法
	copy(temp.begin(), temp.end(), nums.begin());	//复制算法
	replace(nums.begin(), nums.end(), 88, 66);		//替换算法
	sort(nums.begin(), nums.end());					//排序算法
	auto end_unique = 
		unique(nums.begin(), nums.end());			//消除重复算法
    
    /****** vector函数 ******/
	nums.erase(end_unique, nums.end());	//.erase()函数
	nums.resize(7);						//.resize()函数
	nums.insert(nums.begin() + 6, 25);	//.insert()函数
	nums.pop_back();					//.pop_back()函数
	nums.emplace_back(100);				//.emplace_back()函数
    
    //上面1和2放在一起:nums.erase( unique( nums.begin(), nums.end() ), nums.end() );可以清除相同元素

	/******* 迭代器用法 ******/
	for (vector<int>::iterator ite = nums.begin(); ite != nums.end(); ite++) //迭代器的用法,当做指针
	{
		cout << *ite << ' ';
	}
	cout << endl;
	cout << nums.capacity() << endl;	//.capacity()函数
	cout << nums.at(5) <<endl;			//.at()函数
	cout << nums.max_size() << endl;	//.max_size()函数
	system("pause");
	return 0;
}

vector进行片段截取操作

#include <iostream>
#include <vector>
int main() {
    std::vector<int> vector{1,2,3,4,5,6,7,8,9};
    std::cout << "vectoor: ";
    for(auto el : vector) {
        std::cout << el << " ";
    }
    //截取前4个数
    std::vector<int>::const_iterator first1 = vector.begin();
    std::vector<int>::const_iterator last1  = vector.begin() + 4;
    std::vector<int> cut1_vector(first1, last1);
    std::cout << "\ncut1_vector: ";
    for(auto el : cut1_vector) {
        std::cout << el << " ";
    }
    //截取后4个数
    std::vector<int>::const_iterator first2 = vector.end() - 4;
    std::vector<int>::const_iterator last2  = vector.end();
    std::vector<int> cut2_vector(first2, last2);
    std::cout << "\ncut2_vector: ";
    for(auto el : cut2_vector) {
        std::cout << el << " ";
    }
    std::cout << "\n";
}

s

posted @ 2019-10-14 20:32  Zachary'  阅读(718)  评论(0编辑  收藏  举报