返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++11的array容器怎么使用
  • 225
分享到

C++11的array容器怎么使用

2023-06-19 10:06:10 225人浏览 薄情痞子
摘要

本篇内容介绍了“c++11的array容器怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!      &

本篇内容介绍了“c++11的array容器怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!                              

内置数组

数组是C语言中最常用的数据结构之一,但是它的使用比较麻烦。首先是大小没有管理,二是越界操作没有检查。虽然C/C++也提供了一些解决办法,但总是不够完美。例如下面的代码:

int ary[5];
memset(ary, 0, sizeof(ary));
unsigned int i = 0;
while(i<sizeof(ary)/sizeof(ary[0])){
   ary[i] = i;
   i++;
}

对于元素的个数通过sizeof计算数组中元素的个数,是否越界,就只能靠程序员自己来保证了。

array容器

C++11中引入了array容器,基本上解决了内置数组的问题:

std::array<int, 5> c11ary;
c11ary.fill(0);
unsigned int i = 0;
while(i<c11ary.size()){
   c11ary.at(i) = i;
   i++;
}


这段代码中,

  1. 使用fill方法实现了数据填充。

  2. 使用size方法取得数组的大小。

  3. 虽然at(i)方法实现带有越界检查的读写。

没有免费的误餐

为了了解array容器的性能,我们编写下面的代码来测试写入效率:

DWord begin = GetTickCount();
std::array<int, 10000> ary;
//int ary[10000];
//std::vector<int> ary(10000,0);
std::cout << sizeof(ary) << std::endl;
for(int s = 0; s < 10000; s++){
   for(int i = 0; i < 10000; i++){
       ary[i] = s + i;
   }
}
DWORD end = GetTickCount();
std::cout << end - begin << std::endl;

代码分别使用array容器,内置数组,vector容器进行了确认,结果如下:

首先是占用空间的比较结果:array容器和内置数组占用相同的内存空间,vector只有12Byte,真正用于保存数据的内容应该是从堆中获取的。

写入速度的比较结果:内置数组的速度最快,vector容器次之,array容器最慢。

但从array和内置数组的比较结果来讲,牺牲了一些性能,换来了安全和便利。但是vector的效率超过array,让人很意外。

“C++11的array容器怎么使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: C++11的array容器怎么使用

本文链接: https://lsjlt.com/news/295564.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • C++11的array容器怎么使用
    本篇内容介绍了“C++11的array容器怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!      &...
    99+
    2023-06-19
  • C++11容器的insert怎么使用
    本篇内容介绍了“C++11容器的insert怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!从C++98到C++11C++98中的in...
    99+
    2023-06-19
  • C++11的swap怎么使用
    这篇文章主要介绍“C++11的swap怎么使用”,在日常操作中,相信很多人在C++11的swap怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++11的swap怎么使用”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-19
  • C++11的sizeof怎么使用
    本篇内容介绍了“C++11的sizeof怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!示例说明假设有一个程序,需要接受文字信息并生成...
    99+
    2023-06-19
  • C++11中的Array的用法与vector用法介绍
    本篇内容主要讲解“C++11中的Array的用法与vector用法介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++11中的Array的用法与vector用法介绍”吧!Array-对于Ar...
    99+
    2023-06-15
  • C++11中forward_list容器的性能怎么样
    这篇文章主要讲解了“C++11中forward_list容器的性能怎么样”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++11中forward_list容器的性能怎么样”吧!为了了解for...
    99+
    2023-06-19
  • C++ Boost Array与Unordered怎么使用
    这篇文章主要介绍“C++ Boost Array与Unordered怎么使用”,在日常操作中,相信很多人在C++ Boost Array与Unordered怎么使用问题上存在疑惑,小编查阅了各式资料,...
    99+
    2023-07-04
  • C++11如何管理容器的容量
    本篇内容介绍了“C++11如何管理容器的容量”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!capacity和size理解capacity和s...
    99+
    2023-06-19
  • C++11的initializer_list形参怎么使用
    这篇文章主要讲解了“C++11的initializer_list形参怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++11的initializer_list形参怎么使用”吧!C语言...
    99+
    2023-06-19
  • C++11中的chrono库怎么使用
    本篇内容介绍了“C++11中的chrono库怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!前言C++11提供了日期时间相关的库chr...
    99+
    2023-07-05
  • C++11关联容器的列表怎么初始化
    本篇内容介绍了“C++11关联容器的列表怎么初始化”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!什么是关联容器关联容器(associativ...
    99+
    2023-06-19
  • C++怎么使用string容器
    本篇内容主要讲解“C++怎么使用string容器”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++怎么使用string容器”吧!string基本概念本质:string是c++风格的字符串,而s...
    99+
    2023-07-02
  • C++11的decltype修饰符怎么使用
    本篇内容介绍了“C++11的decltype修饰符怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!功能介绍在存在初始化代码的情况下,可...
    99+
    2023-06-19
  • C++11的函数对象怎么使用
    这篇文章主要介绍“C++11的函数对象怎么使用”,在日常操作中,相信很多人在C++11的函数对象怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++11的函数对象怎么使用”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-19
  • C++11的lambda表达式怎么使用
    这篇文章主要讲解了“C++11的lambda表达式怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++11的lambda表达式怎么使用”吧!可变lambda假设有如下vector,保...
    99+
    2023-06-19
  • C++11的function类模版怎么使用
    这篇文章主要介绍“C++11的function类模版怎么使用”,在日常操作中,相信很多人在C++11的function类模版怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++11的function类...
    99+
    2023-06-19
  • C++11的override说明符怎么使用
    本篇内容主要讲解“C++11的override说明符怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++11的override说明符怎么使用”吧!多态和虚函数多态是C++的重要特征之一,...
    99+
    2023-06-19
  • C++11中的stoi和stod怎么使用
    这篇文章主要介绍“C++11中的stoi和stod怎么使用”,在日常操作中,相信很多人在C++11中的stoi和stod怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++11中的stoi和stod怎...
    99+
    2023-07-04
  • javascript array怎么使用
    这篇文章主要介绍“javascript array怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“javascript array怎么使用”文章能帮助大家解决问题。创建数组JavaScript...
    99+
    2023-07-06
  • C++11随机数库怎么使用
    本篇内容主要讲解“C++11随机数库怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++11随机数库怎么使用”吧!从前的随机数C++11之前,无论是C,还是C++都使用相同方式的来生成随...
    99+
    2023-06-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作