#include <iostream>
#include <vector>
#include <algorithm>
bool sort1(const int a, const int b)
{
return a < b;
}
bool sort2(const int a, const int b)
{
return a > b;
}
int main()
{
// 声明
std::vector<int> vec_int;
// 初始化 && 遍历
vec_int.resize(5);
for(auto it = vec_int.begin(); it != vec_int.end(); it++) {
std::cout << "it member: " << *it << std::endl;
}
for(int i = 0; i < vec_int.size(); i++) {
std::cout << "it member: " << vec_int[i] << std::endl;
}
std::cout << "###############################\n";
vec_int.resize(5, 10); // 初始化5个元素,每个元素值为10
for(int i = 0; i < vec_int.size(); i++) {
std::cout << "member: " << vec_int[i] << std::endl;
}
// 初始化列表方法
std::vector<int> vec_test02{1,2,3,4,5};
for(int i = 0; i < vec_test02.size(); i++){
std::cout << "vec " << i << " member: " << vec_test02[i] << std::endl;
}
// 用另一个向量初始化
std::vector<int> copy_vector(vec_test02);
for(int i = 0; i < copy_vector.size(); i++){
std::cout << "vec copy " << i << " member: " << copy_vector[i] << std::endl;
}
std::cout << "###############################\n";
// 使用数组指针初始化
int arr[10] = {1,2,3,4,5};
std::vector<int> arr_vector(arr, arr + 10);
for(int i = 0; i < arr_vector.size(); i++){
std::cout << "arr vec copy " << i << " member: " << arr_vector[i] << std::endl;
}
// 二维数组定义方式
std::vector<std::vector<int>> vec_dim2(10, std::vector<int>(5)); // 10 行 5 列
for(int i = 0; i < vec_dim2.size(); i++) {
for(int j = 0; j < vec_dim2[0].size(); j++) {
std::cout << "i: " << i << " j: " << j << std::endl;
}
}
std::cout << "###############################\n";
// 元素添加到末尾
std::vector<int> ttest03{1,2,3};
std::cout << "before pop: \n";
for(auto item: ttest03){
std::cout << item << std::endl;
}
ttest03.push_back(10086);
std::cout << "after insert: \n";
for(auto item: ttest03){
std::cout << item << std::endl;
}
std::cout << "after pop: \n";
ttest03.pop_back(); // 从末尾删除元素
for(auto item: ttest03){
std::cout << item << std::endl;
}
// 删除指定位置元素
auto it = ttest03.begin();
it += 1; // 删除索引为1位置的元素
ttest03.erase(it);
std::cout << "after erase: \n";
for(auto item: ttest03){
std::cout << item << std::endl;
}
std::cout << "###############################\n";
// 元素排序
std::vector<int> vec_to_sort{2,4,1,6,7,2,9,0};
std::sort(vec_to_sort.begin(), vec_to_sort.end(), sort1);
for(auto &item: vec_to_sort) {
std::cout << item << " ";
}
std::cout << std::endl;
std::cout << "stl test finished. \n";
return 0;
}
STL学习01:vector代码片段
最新推荐文章于 2024-09-11 09:33:21 发布