详解C++编程中的vector类容器用法
简介
在 C++ 中,vector
是一个非常实用的容器类,它可以动态调整大小并提供了一系列方便的操作函数。在本文中,我们将详细介绍 vector
类的使用方法,以便能够更好地应用 vector
容器类进行 C++ 编程。
如何使用 vector
首先需要在头文件中包含 vector
:
#include<vector>
然后可以定义一个 vector
对象:
std::vector<int> myVec;
其中的 <int>
表示这是一个整型的 vector
对象。创建好对象后就可以使用 vector
类的各种函数和属性了。
常用函数
添加元素
vector
容器可以便捷地添加元素,可以在末尾添加一个元素,也可以在任何一个位置插入一个元素。以下是常见的添加元素的函数:
push_back()
:在容器尾部插入一个元素。emplace_back()
:在容器尾部插入一个元素,它比push_back()
函数更快,因为它直接在容器内创建对象。insert()
:在指定位置插入一个元素。
示例代码:
std::vector<int> myVec;
myVec.push_back(1); // 在末尾增加元素
myVec.emplace_back(2); // 在末尾增加元素(更快)
myVec.insert(myVec.begin() + 1, 3); // 在第二个位置插入元素
访问元素
可以用下标的方式或迭代器的方式访问元素,以下是常见的访问元素的函数:
[]
:通过下标访问元素。at()
:通过下标访问元素,但可以检查边界错误。front()
:返回容器中的第一个元素。back()
:返回容器中的最后一个元素。
示例代码:
std::vector<int> myVec{1, 2, 3};
int x = myVec[1]; // 取得第二个元素
int y = myVec.at(2); // 取得第三个元素
int z = myVec.front(); // 取得第一个元素
int w = myVec.back(); // 取得最后一个元素
删除元素
可以用下标的方式或迭代器的方式删除元素,以下是常见的删除元素的函数:
erase()
:删除指定的元素。clear()
:删除容器的所有元素。
示例代码:
std::vector<int> myVec{1, 2, 3};
myVec.erase(myVec.begin() + 1); // 删除第二个元素
myVec.clear(); // 删除所有元素
示例
示例 1:用 vector 实现栈
#include <iostream>
#include <vector>
class Stack {
public:
Stack() = default;
void push(int n) { data_.emplace_back(n); }
void pop() { data_.pop_back(); }
int top() const { return data_.back(); }
bool empty() const { return data_.empty(); }
private:
std::vector<int> data_;
};
int main() {
Stack stk;
stk.push(1);
stk.push(2);
std::cout << "Top: " << stk.top() << std::endl; // Top: 2
stk.pop();
std::cout << "Top: " << stk.top() << std::endl; // Top: 1
stk.pop();
std::cout << "Empty: " << stk.empty() << std::endl; // Empty: 1
return 0;
}
示例 2:用 vector 实现队列
#include <iostream>
#include <vector>
class Queue {
public:
Queue() = default;
void push(int n) { data_.emplace_back(n); }
void pop() { data_.erase(data_.begin()); }
int front() const { return data_.front(); }
bool empty() const { return data_.empty(); }
private:
std::vector<int> data_;
};
int main() {
Queue q;
q.push(1);
q.push(2);
std::cout << "Front: " << q.front() << std::endl; // Front: 1
q.pop();
std::cout << "Front: " << q.front() << std::endl; // Front: 2
q.pop();
std::cout << "Empty: " << q.empty() << std::endl; // Empty: 1
return 0;
}
总结
vector
容器类用于动态数组的管理,可以快速、方便地增加、删除、访问元素,是 C++ 编程中非常常用的容器类。我们在使用 vector
时需要注意边界情况,避免访问不存在的元素等错误。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解C++编程中的vector类容器用法 - Python技术站