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