Vector容器
·
一,STL
STL包含了容器,算法,迭代器等六个组件
每个容器都有自己专属的迭代器(提供一种方法按序寻找其中的各个元素)
其中迭代器可以理解为指向容器元素的指针
二,初识vector容器
vector容器与数组非常相似,不同在于数组是静态空间,vector数组为动态空间(可以随时扩展)。
vector可以进行赋值,插入,删除,预留空间,互换容器等操作。

#include <iostream>
#include <vector>
int main() {
std::vector<int> vec1; // 空的vector
vec1.begin() //类似指针,它指向这个容器的首个元素
vec1.end() //类似指针,它指向这个容器的最后一个元素的下一位
std::vector<int> vec2(5); // 长度为5的vector,元素默认初始化
std::vector<int> vec3(5, 10); // 长度为5的vector,元素值为10
std::vector<int> vec4 = {1, 2, 3, 4}; // 使用初始化列表初始化
return 0;
}
#include<vector>
#include<algorithm>
#include<iostream>
using namespace std;
int main() {
// 声明一个存储整型数的 vector,其名为numbers
std::vector<int> numbers;
// 在末尾添加元素
numbers.push_back(10);
numbers.push_back(20);
numbers.push_back(30);
// 输出 vector 中的元素
printf( "Vector contains: ");
for (int i = 0; i < numbers.size(); ++i) {
std::cout << numbers[i] << " ";
}
std::cout << std::endl;
// 添加更多元素
numbers.push_back(40);
numbers.push_back(50);
// 再次输出 vector 中的元素
std::cout << "After adding more elements, vector contains: ";
for (int i = 0; i < numbers.size(); ++i) {
std::cout << numbers[i] << " ";
}
std::cout << std::endl;
// 访问特定元素
std::cout << "The first element is: " << numbers[0] << std::endl;
// 清空 vector
numbers.clear();
// 检查 vector 是否为空
if (numbers.empty()) {
std::cout << "The vector is now empty." << std::endl;
}
return 0;
}
利用自带的算法,遍历vector容器
#include<vector>
#include<algorithm>
#include<iostream>
using namespace std;
void myprint(int a) {
cout << a << endl;
}
int main() {
vector<int> h = {10,20,30,40};
for_each(h.begin(), h.end(),myprint); //利用自带的遍历算法
return 0;
}
三,vector容器储存自定义数据类型/嵌套
#include<vector>
#include<algorithm>
#include<iostream>
using namespace std;
class Person {
public:
Person(string name, int age) {
this->m_name = name;
this->m_age = age;
}
int m_age;
string m_name;
};
int main() {
vector<Person> h;
Person p1("a", 10);
Person p2("b", 20);
Person p3("c", 30);
h.push_back(p1);
h.push_back(p2);
h.push_back(p3);
vector<vector<int>> h2;
vector<int> v1;
vector<int> v2;
vector<int> v3;
h2.push_back(v1);
h2.push_back(v2);
h2.push_back(v3);
return 0;
}
更多推荐


所有评论(0)