array学习总结

概述

c++的容器类型大体可以分为顺序容器和关联容器两大类。

顺序容器
array定长数组
vector动态数组
deque双端队列
forward_list单向链表
list双向链表
string和vector一样只不过只能存储字符

关联容器
map/unordered_map
set/unordered_set
multimap/unordered_multimap
multiset/unordered_multiset

     表1.容器分类

成员函数介绍

本节先介绍array容器,作为c++11刚引入的容器类型。其成员可以分为指向头尾的*begin(),*end(),以及对数据修改的max_size(),front()等等。具体差别如下。

begin()/end()begin()返回值指向数组的首元素,end()返回值指向尾元素的下一个地址。
cbegin()/cend() 
rbegin()/rend()rbegin()=end();rend()=begin。可以这样简单的理解。
crbegin()/crend() 
                     表2.指向容器首尾的成员函数

max_size()返回数组的最大长度
size()返回数组当前长度
empty()数组无元素返回真,否则为假。
front()/back()front()返回数组首元素;back()返回数组尾元素。
data()返回数组第一个元素的指针
                表3.读数组成员的函数

fill()把数组所以元素都置为指定值
swap()交换两个数组的值
                  表4.修改数组元素的函数

打印方式

先说一点吧,array容器声明的时候,必须指定容器大小。如果不想指定容器大小,可以选择vector容器。下面介绍array数组的6种打印方式。

// array::begin example
#include <iostream>
#include <array>
using namespace std;
int main ()
{
	array<int,5> myarray = { 2, 16, 77, 34, 50 };

	cout << "1.use operator [] .myarray contains:";//打印1.use operator [] .myarray contains: 2 16 77 34 50

 	for ( int i=0;i< 5;i++)
  	   cout << ' ' << myarray[i];
	cout << '\n';


	cout << "2.use function at.myarray contains:";//打印2.use function at.myarray contains: 2 16 77 34 50
	 for ( int i=0;i< 5;i++)
	     cout << ' ' << myarray.at(i);
	cout << '\n';


	cout << "3.use funciton begin/end.myarray contains:";  //打印3.use funciton begin/end.myarray contains: 2 16 77 34 50
	for ( auto it = myarray.begin(); it != myarray.end(); ++it )
		cout << ' ' << *it;
	cout << '\n';
	
	
	cout << "4.use funciton cbegin/cend.myarray contains:";//打印4.use funciton cbegin/cend.myarray contains: 2 16 77 34 50
 	for ( auto it = myarray.cbegin(); it != myarray.cend(); ++it )
  		cout << ' ' << *it;
	cout << '\n';


	cout << "5.use funciton rbegin/rend.myarray contains:";//打印5.use funciton rbegin/rend.myarray contains: 50 34 77 16 2
  	for ( auto it = myarray.rbegin(); it != myarray.rend(); ++it )
    	cout << ' ' << *it;
	cout << '\n';
	

	cout << "6.use funciton crbegin/crend.myarray contains:";//打印6.use funciton crbegin/crend.myarray contains: 50 34 77 16 2
  	for ( auto it = myarray.crbegin(); it != myarray.crend(); ++it )
    	cout << ' ' << *it;
	cout << '\n';

 	return 0;
 }




参考

1.介绍c++的在线网站   http://www.cplusplus.com/reference/array/array/array/

2.《c++ primer》第九章,十一章

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值