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