【C++】STL 容器 - vector 动态数组容器 ④ ( vector 容器容量大小操作 | vector 容器容量判定 | vector 容器重新指定容器大小 | 容器尾部插入/删除元素 )






一、 vector 容器容量大小操作



1、vector 容器容量判定


vector 容器容量判定 :

  • 获取元素个数 : size() 函数返回 vector 容器中元素的数量 , 类型为 size_type , 是无符号整数类型 ; noexcept 说明符表示该函数不会抛出异常 ; 函数原型 和 示例代码 如下 :
// 函数原型
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; 
  • 判断是否为空 : empty() 函数返回一个布尔值 , 表示 vector 容器是否为空 ; 如果容器中没有元素 , 则返回 true , 否则返回 false ; noexcept 说明符表示该函数不会抛出异常 ;
// 函数原型
bool empty() const noexcept;

// 代码示例
std::vector<int> vec;  
if (vec.empty()) {
    
      
    std::cout << "vec empty" << std::endl;  
}

2、vector 容器重新指定容器大小


重新指定长度 : 参数 n 表示新的容器大小 ;

  • 如果 n 大于当前容器的大小 , 则会在容器的末尾添加元素 , 使用元素类型的默认构造函数创建新元素 ;
  • 如果 n 小于当前容器的大小 , 则会在容器的开头删除元素 ;
// 重新指定容器大小
void resize(size_type n) noexcept;  

代码示例 :

// 创建一个包含 3 个元素的 vector  
std::vector<int> vec = {
    
    1, 2, 3};  

// 将 vector 的大小增加到 5  
vec.resize(5);  

重新指定长度并进行填充 : 参数 n 表示新的容器大小 ;

  • 如果 n 大于当前容器的大小 , 则会在容器的末尾添加元素指定元素 val 参数 ;
  • 如果 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);  

上述两个函数都不会改变元素的顺序 ;


3、代码示例


代码示例 :

#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 容器尾部插入 / 删除元素



1、vector 容器尾部插入元素


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 . . .

在这里插入图片描述


2、vector 容器尾部删除元素


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;
};

执行结果 :

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/han1202012/article/details/135069581
今日推荐