C++的array有什么作用

这篇文章主要讲解了“C++的array有什么作用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++的array有什么作用”吧!

公司主营业务:网站制作、成都网站设计、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联推出江北免费做网站回馈大家。

我们先来看一下怎么样使用array。

使用array,首先需要在代码中包含头文件:

#include 

由于array是标准库里面的类,所以需要指明命名空间:

using std:array; 

或直接在array前指明命名空间:

std::array.. 

下面我们在看一下怎么定义array对象。直接上示例代码吧,

#include
using std::array;
int main(){
std::array a1{ {1, 2, 3} };
  std::array a2 = {1, 2, 3};
std::array a3 = { std::string("a"), "b" };
}
 

从上面的例子中,我们可以明显看见array与vector定义的不同。array定义时需要指定容器的大小,且与容器中实际的元素个数匹配。其他基本与vector相同。与vector一样,array也有元素访问的一些操作,而且基本与vector一致,直接放上示例代码吧:

//array Demo

#include
#include
using std::array;
int main()
{
array arr1 = { 1, 2, 3, 4 };
std::cout << arr1.at(2) << std::endl;
std::cout << arr1[2] << std::endl;
std::cout << arr1.front() << std::endl;
std::cout << arr1.back() << std::endl;
std::cout << arr1.data() << std::endl;
std::cout << *arr1.data() << std::endl;

return 0;
}

看上面的代码,是不是跟我们上一篇文章写的vector一样?

下面我们再看一下array的迭代器,还是先上代码吧,很多时候,代码显得更加亲切:

    ...
array arr1 = { 1, 2, 3, 4 };
for (auto i = arr1.begin(); i != arr1.end(); ++i)
    std::cout << *i << std::endl;

for (auto i = arr1.cbegin(); i != arr1.cend(); ++i)
   std::cout << *i << std::endl;

for (auto i = arr1.rbegin(); i != arr1.rend(); ++i)
   std::cout << *i << std::endl;
...

上面我们可以看出前两对迭代器跟vector的一样,不再细说。这里补充一下说rbegin,rend。其实,vector中也是有这两对获取迭代器的方法的,昨天文章遗漏了,正好今天补充一下。

rbegin与rend中的r其含义是reverse(反向的),这两个方法其实就是返回反向的迭代器,所有rbegin其实就是获取array的末尾迭代器,rend就是获取array的其实迭代器,实现了逆向遍历,这样看来是不是操作array或者vector更加方便了呢?

除此以外,array也有容量相关的一些操作函数,还是先上代码吧:

std::cout << arr1.empty() << std::endl;
std::cout << arr1.size() << std::endl;
std::cout << arr1.max_size() << std::endl;

感谢各位的阅读,以上就是“C++的array有什么作用”的内容了,经过本文的学习后,相信大家对C++的array有什么作用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!


网页题目:C++的array有什么作用
分享链接:http://csdahua.cn/article/gihhip.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流