C语言学习网

C++的array有什么作用

发表于:2022-10-04 作者:安全数据网编辑
编辑最后更新 2022年10月04日,这篇文章主要讲解了"C++的array有什么作用",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"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有什么作用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

0