前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【C++】STL 容器 - vector 动态数组容器 ④ ( vector 容器容量大小操作 | vector 容器容量判定 | vector 容器重新指定容器大小 | 容器尾部插入/删除元素 )

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

作者头像
韩曙亮
发布2023-12-20 09:50:14
7190
发布2023-12-20 09:50:14
举报
文章被收录于专栏:韩曙亮的移动开发专栏
文章目录
  • 一、 vector 容器容量大小操作
    • 1、vector 容器容量判定
    • 2、vector 容器重新指定容器大小
    • 3、代码示例
  • 二、 vector 容器尾部插入 / 删除元素
    • 1、vector 容器尾部插入元素
    • 2、vector 容器尾部删除元素

一、 vector 容器容量大小操作


1、vector 容器容量判定

vector 容器容量判定 :

  • 获取元素个数 : size() 函数返回 vector 容器中元素的数量 , 类型为 size_type , 是无符号整数类型 ; noexcept 说明符表示该函数不会抛出异常 ; 函数原型 和 示例代码 如下 :
代码语言:javascript
复制
// 函数原型
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 说明符表示该函数不会抛出异常 ;
代码语言:javascript
复制
// 函数原型
bool empty() const noexcept;

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

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

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

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

代码示例 :

代码语言:javascript
复制
// 创建一个包含 3 个元素的 vector  
std::vector<int> vec = {1, 2, 3};  

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

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

  • 如果 n 大于当前容器的大小 , 则会在容器的末尾添加元素指定元素 val 参数 ;
  • 如果 n 小于当前容器的大小 , 则会在容器的开头删除元素 ;
代码语言:javascript
复制
// 重新指定容器大小 并进行填充
void resize(size_type n, const value_type& val) noexcept;

代码示例 :

代码语言:javascript
复制
// 创建一个包含 3 个元素的 vector  
std::vector<int> vec = {1, 2, 3};  

// 将 vector 的大小增加到 5 , 并使用 6 填充剩余元素
vec.resize(5, 6);  

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

3、代码示例

代码示例 :

代码语言:javascript
复制
#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 函数实现 , 该函数原型如下 :

代码语言:javascript
复制
void push_back(const value_type& val);  

接受一个常量引用 val , 将 val 添加到 vector 容器的末尾 ;

代码示例 :

代码语言:javascript
复制
#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 容器中的最后一个元素 , 函数原型如下 :

代码语言:javascript
复制
void pop_back();

代码示例 :

代码语言:javascript
复制
#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;
};

执行结果 :

在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-12-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、 vector 容器容量大小操作
    • 1、vector 容器容量判定
      • 2、vector 容器重新指定容器大小
        • 3、代码示例
        • 二、 vector 容器尾部插入 / 删除元素
          • 1、vector 容器尾部插入元素
            • 2、vector 容器尾部删除元素
            相关产品与服务
            容器服务
            腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档