c++顺序容器之array
来源:互联网 发布:英雄无敌 mac 10.10 编辑:程序博客网 时间:2024/06/05 14:36
c++中可以用类类型array来定义数组,array是模板类,其声明如下:
array<class T,size_t n> my_array;
array内部只包含数据元素,即使是表示其大小的值size也仅仅是模板类声明时的参数。类类型array也有[ ]操作,和普通数组相比,由于array类包含一些成员函数,所以在操作上显得更加简单高效。
array成员介绍:
/**迭代器相关**/array<int,5> my_array;int i;for(i=0;i<5;++i) /**[]操作**/my_array[i]=i+1;array<int,5>::iterator beg=my_array.begin(); //返回指向array对象的第一个元素的指针array<int,5>::iterator end=my_array.end(); //返回array对象的尾后指针array<int,5>::const_iterator cbeg=my_array.cbegin(); //返回值同begin,但为const值array<int,5>::const_iterator cend=my_array.cend(); //返回值同end(),但为const值array<int,5>::reverse_iterator rbeg=my_array.rbegin(); //reverse beginning,返回指向array对象的最后一个元素的指针array<int,5>::reverse_iterator rend=my_array.rend(); //reverse end,array<int,5>::const_reverse_iterator crbeg=my_array.crbegin(); //返回值同rbegin,但为const值array<int,5>::const_reverse_iterator crend=my_array.crend(); //返回值同rend(),但为const值while(beg!=end)cout<<*(beg++)<<" ";cout<<endl;while(rbeg!=rend)cout<<*(rbeg++)<<" ";cout<<endl;程序执行结果:
<pre name="code" class="cpp">/************容器大小相关*************** size(),max_size()均返回容器的大小,由于array模板类声明时就已指定容器大小, so,这两个函数的返回值都等于第二个模板参数n. empty()返回值为bool型,若array对象为空,返回true,否则返回false.*************************************/array<char,10> my_array;cout<<"my_array.size()=="<<my_array.size()<<endl; cout<<"my_array.max_size()=="<<my_array.max_size()<<endl;if(my_array.empty())cout<<"Empty array!"<<endl;elsecout<<"Not empty."<<endl;
程序执行结果:
front()返回array对象第一个元素的引用;
back()返回array对象尾元素的引用;
data()返回指向array对象第一个元素的指针;
at()功能相当于[ ]操作,但是,若函数参数大于等于array.size()就会自动抛出错误,所以使用起来更安全.
/****************数据元素相关******************/array<int,5> my_array;int i;for(i=0;i<5;++i)my_array.at(i)=i+1;cout<<my_array.front()<<endl;cout<<my_array.back()<<endl;cout<<my_array.at(3)<<endl;程序执行结果:
fill(ElementType V) 将array对象的全部元素填充为同一个值V;
swap(A1,A2) 将数组A1和A2中的元素全部交换,A1与A2必须大小相等,并有相同类型的元素类型;
/****************数组元素整体操作******************/array<int,5> my_array;array<int,5> your_array;int i;my_array.fill(6);your_array.fill(7);for(i=0;i<5;++i)cout<<my_array[i]<<" ";cout<<endl;for(i=0;i<5;++i)cout<<your_array[i]<<" ";cout<<endl;swap(my_array,your_array);cout<<endl;for(i=0;i<5;++i)cout<<my_array[i]<<" ";cout<<endl;for(i=0;i<5;++i)cout<<your_array[i]<<" ";cout<<endl;程序执行结果:
0 0
- c++顺序容器之array
- 【C++】顺序容器之vector用法
- C++primer_顺序容器之string操作
- c++primer之顺序容器(容器库概览)
- 【C++】STL常用容器总结之二:顺序容器
- C++容器之array
- C ++ 读书笔记 顺序容器
- 《C++primer》 顺序容器
- C++Primer 顺序容器
- C++---顺序容器
- 【c++】stl顺序容器
- STL容器之顺序容器
- Chapter 10.顺序容器array[c++11]
- STL之顺序容器
- MyC++之顺序容器
- 顺序容器之vector
- 顺序容器之list
- STL 之顺序容器
- 文件的读写1
- 解决ubuntu14.04下Qt 5.3.1下的QtCreator fcitx,ibus不能输入中文
- Leetcode 之 Candy
- 本地sqlyog连接错误
- JAVA基础----多线程
- c++顺序容器之array
- Counting Binary Trees - HDU 3240 卡特兰数+逆元
- HostConfig.deployDirectories
- opencv 使用鼠标选定矩形框
- angel and demon : Ecstasy of Saint Teresa
- sql server 获取系统时间的方法
- 正则表达式匹配引号中间的内容怎么写?
- dialog
- 杨辉三角