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

猜你喜欢

转载自www.cnblogs.com/Zak-NoS/p/11673916.html