温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C++的array有什么作用

发布时间:2021-08-10 16:44:43 来源:亿速云 阅读:182 作者:chen 栏目:大数据

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

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

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

#include <array>

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

using std:array; 

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

std::array.. 

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

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

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

//array Demo

#include <iostream>
#include <array>
using std::array;
int main()
{
array<int, 4> 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<int, 4> 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有什么作用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

c++
AI