这篇文章主要讲解了“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有什么作用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。