zoukankan      html  css  js  c++  java
  • 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 << "
    cut1_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 << "
    cut2_vector: ";
        for(auto el : cut2_vector) {
            std::cout << el << " ";
        }
        std::cout << "
    ";
    }
    
    

    s

  • 相关阅读:
    随机生成字符串,可用来当id
    自己总结的关于uniapp项目用androidstuido打包成apk
    css3 滑动效果 门
    在数组里面随机获取随机的几个内容
    把一个数组分割成两个(不管奇数还是偶数)
    Mysql常用命令
    怎样才能彻底地删除多余输入法软件
    启动MySQL服务
    linux监控命令全覆盖
    浅谈MVC模式与SSH框架
  • 原文地址:https://www.cnblogs.com/Zak-NoS/p/11673916.html
Copyright © 2011-2022 走看看