vector 容器容量判定 :
// 函数原型
size_type size() const noexcept;
// 代码示例
std::vector<int> vec = {1, 2, 3, 4, 5};
// vec.size() = 5
std::cout << "vec.size() = " << vec.size() << std::endl;
// 函数原型
bool empty() const noexcept;
// 代码示例
std::vector<int> vec;
if (vec.empty()) {
std::cout << "vec empty" << std::endl;
}
重新指定长度 : 参数 n 表示新的容器大小 ;
// 重新指定容器大小
void resize(size_type n) noexcept;
代码示例 :
// 创建一个包含 3 个元素的 vector
std::vector<int> vec = {1, 2, 3};
// 将 vector 的大小增加到 5
vec.resize(5);
重新指定长度并进行填充 : 参数 n 表示新的容器大小 ;
// 重新指定容器大小 并进行填充
void resize(size_type n, const value_type& val) noexcept;
代码示例 :
// 创建一个包含 3 个元素的 vector
std::vector<int> vec = {1, 2, 3};
// 将 vector 的大小增加到 5 , 并使用 6 填充剩余元素
vec.resize(5, 6);
上述两个函数都不会改变元素的顺序 ;
代码示例 :
#include "iostream"
using namespace std;
#include "vector"
int main() {
std::vector<int> vec = { 1, 2, 3 };
// 1. 获取元素个数
// vec.size() = 5
std::cout << "vec.size() = " << vec.size() << std::endl;
// 2. 判断容器是否为空
if ( !vec.empty() ) {
std::cout << "vec empty" << std::endl;
}
// 3. 将 vector 的大小增加到 5
vec.resize(5);
// 4. 将 vector 的大小增加到 8 , 并使用 6 填充剩余元素
vec.resize(8, 6);
// 控制台暂停 , 按任意键继续向后执行
system("pause");
return 0;
};
执行结果 :
vec.size() = 3 vec empty Press any key to continue . . .
vector 容器尾部插入元素 , 可以调用 push_back 函数实现 , 该函数原型如下 :
void push_back(const value_type& val);
接受一个常量引用 val , 将 val 添加到 vector 容器的末尾 ;
代码示例 :
#include "iostream"
using namespace std;
#include "vector"
int main() {
// 创建空的 vector 容器
std::vector<int> vec;
// 向容器尾部添加元素
vec.push_back(1);
vec.push_back(2);
vec.push_back(3);
// 输出 vector 的内容
for (int x : vec) {
std::cout << x << ' ';
}
std::cout << std::endl;
// 控制台暂停 , 按任意键继续向后执行
system("pause");
return 0;
};
执行结果 :
1 2 3 Press any key to continue . . .
vector 容器尾部删除元素 , 可以调用 vector 类的 pop_back 成员函数实现 , 该函数用于删除 vector 容器中的最后一个元素 , 函数原型如下 :
void pop_back();
代码示例 :
#include "iostream"
using namespace std;
#include "vector"
int main() {
// 创建空的 vector 容器
std::vector<int> vec{1, 2, 3};
// 移除容器尾部一个元素
vec.pop_back();
// 输出 vector 的内容
for (int x : vec) {
std::cout << x << ' ';
}
std::cout << std::endl;
// 控制台暂停 , 按任意键继续向后执行
system("pause");
return 0;
};
执行结果 :