std::array使用笔记

概要

std::arrayC++标准库提供的一个封装原生定长数组的模板类

  • std::array<T, N> 与原生数组 T[N] 具有相同的内存大小,并且默认都是分配在栈内存
  • std::array 相比原生数组多了更多的可操作性和属性, 比如获取数组大小可以直接使用 array.size(), 整数数组清零可以使用 array.fill(0)
  • std::array也支持原生数组相同的 for each循环
  • 总之就是,原生数组能做的事,std::array都可以做,std::array可以做的事,原生数组不一定可以做
  • 建议优先使用 std::array

使用方法

包含头文件

#include <array>

定义与初始化

  • 局部变量
// 使用传统默认构造: 每个元素都会调用默认构造
std::array<int, 100> numbers; // C++11前的语法
std::array<int, 100> numbers{
   }; // C++11后的语法

// 使用 auto
auto numbers = std::array<int, 10>{
   }; // C++11开始支持

  • 类成员变量
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
std::arraystd::vector都是C++中的容器,用于存储和管理一系列的元素。它们有一些相似之处,但也有一些不同之处。 1. std::arraystd::array是一个固定大小的数组,它在编译时就确定了大小。它的大小是固定的,不能动态改变。std::array的元素在内存中是连续存储的,可以通过索引访问元素。以下是std::array的一些常用操作[^1]: - 创建一个空的std::array对象:std::array<T, N> arr; - 获std::array的大小:arr.size(); - 访问std::array中的元素:arr[i]或arr.at(i); - 清空std::array中的所有元素:arr.fill(value); 2. std::vector: std::vector是一个动态数组,它的大小可以在运行时动态改变。std::vector的元素在内存中也是连续存储的,可以通过索引访问元素。以下是std::vector的一些常用操作: - 创建一个空的std::vector对象:std::vector<T> vec; - 创建一个指定大小的std::vector对象:std::vector<T> vec(n); - 在std::vector的末尾添加元素:vec.push_back(value); - 获std::vector的大小:vec.size(); - 清空std::vector中的所有元素:vec.clear(); - 删除std::vector中的最后一个元素:vec.pop_back(); - 删除std::vector中的指定元素:vec.erase(vec.begin() + i); - 迭代访问std::vector中的元素:for (auto it = vec.begin(); it != vec.end(); ++it) { ... } std::array适用于大小固定且不需要频繁创建销毁的情况,而std::vector适用于大小不确定且需要频繁创建销毁的情况。在性能方面,std::array在大部分情况下与std::vector相比没有明显的差距。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值