向量 vector

vector可以看作一个动态数组,用于存储一组数据类型相同的数据,对数据元素的个数没有限制,即可以把 vector看作一个存放任意数据类型的“容器”。使用 vector需要包含头
文件< vector>。声明 vector对象的方法有多种,例如:
vector〈类型说明符〉对象名;
vector〈类型说明符〉对象名(元素个数);
vector〈类型说明符〉对象名{元素初始列表};
其中,类型说明符说明了 vector容器中存储的数据类型,可以是基本数据类型,也可以
是构造数据类型。对象名是任意合法的标识符。第一种形式声明的对象长度是0,第二种形式指定了对象的元素个数,第三种形式可以为对象赋初始值。例如:

vector<int>nV1;
vector<int>fV2(10);
vector<int>nV3{1,2,3,4,5};

nV1的初始长度为0,并不意味着该向量没有任何用处,不能存储任何数据。同样,fV2的初始长度是10,也并不意味着只能存储10个foat型数据,因为 vector类型的对象长度是自动变化的。例如,若fV2中存储的元素超过10个,编译器会自动为fV2分配相应数量的内存空间。
vector 向量中元素的访问方法有两种:下标法和使用成员函数()。例如,访间nv3的第三个元素(下标为2的元素):

nV1[2];
//或者
nV1.at(2);

其中,at()nV1的成员函数,通过成员运算符","进行调用

类模板 array

aray与普通数组一样,也实现为一个定长的数组。使用aray需要包含头文件
声明array类型对象的基本格式如下:
array<类型说明符,组数长度>组数名;
例如:

array<int,10>array1{1,2,3,4,5};
array<float,10>array2;

类模板array提供了丰富的层面,函数可以实现特定的功能,下面介绍几个常用的成员函数。

1.元素访问

1.[]
基本格式:
组数名[下标]
例如:

cout<<arr2[2];
arr2[2]=0;

2.at()
基本格式:
组数名.at(下标)
例如:

cout<<arr2.at(2);
arr2.at(2)=0;

3.front()
基本格式:
组数名.front()
函数功能:返回第1个元素,相当于at(0)。例如:

cout<<arr2.front();
arr2.front()=0;

4.back()
基本格式:
组数名.back()
函数功能:返回最后一个元素。
5.date()
基本格式:
组数名.date()
函数功能:返回指向第1个元素的指针。例如

array<int,10>arr2{1,2,3,4,5};
cout<<*arr2.data();
*arr2.data()=0;

迭代器运算函数

迭代器( Iterator)即指向array容器的元素的指针,它具有指针的一般性质,如解引用运
”、指针移动(如自增“++”、自减“—”)等。相关的成员函数包括 begin()、end0)、 begin()、rend()。

(1)begin(),end()
基本格式:
数组名.begin()

数组名.end()
分别返回第1个元素的迭代器和最后一个元素后面位置的迭代器。
(2)rbegin(),rend()
分别返回最后一个元素的迭代器和第1个元素前面位置的迭代器
这种迭代器可以看做反向迭代器,如果需要逆序访问数组元素的话,可以使用这种迭代器。

综合代码:

#include <iostream>
#include <cstring>
#include <array>
using namespace std;int main() {const int max = 10;array<int, max>a;for (int i = 0; i < max; i++)cin >> a.at(i);cout << a[0] << endl;cout << a.at(0);cout << endl << a.front() << " " << a.back() << endl;cout << *a.data() << endl;cout << *a.begin() << endl << "b" << *(a.end() - 1) << endl;
}

希望对大家有帮助呀。

c++中组数的替代方案相关推荐

  1. 数组分成两组差值最小 python_数组中的数分为两组,让给出一个算法,使得两个组的和的差的绝对值最小,数组中的数的取值范围是0x100,元素个数也是大于0, 小于100 。...

    比如a[]={2,4,5,6,7},得出的两组数{2,4,6}和{5,7},abs(sum(a1)-sum(a2))=0: 比如{2,5,6,10},abs(sum(2,10)-sum(5,6))=1 ...

  2. 将AX寄存器中的16位数据分成4组(从高到低),每组4位,然后把这4组数作为数当中的低4位分别放在AL,BL,CL,DL中。

    将AX寄存器中的16位数据分成4组(从高到低),每组4位,然后把这4组数作为数当中的低4位分别放在AL,BL,CL,DL中. P176 4.14 编程思路:首先用BX.DX存放AX,即原AX=原BX= ...

  3. 组数(【问题描述】输入一行字符串(设字符数不大于80),提取该字符串中的数字字符并组成一个整数,输出该整数及其两倍的值。)

    组数 [问题描述]输入一行字符串(设字符数不大于80),提取该字符串中的数字字符并组成一个整数,输出该整数及其两倍的值.要求在主函数中输入字符串,并输出结果.在子函数中提取该字符串中的数字字符并组成一 ...

  4. origin中文版散点图拟合曲线_origin中两组数已经画出散点图,如何新增类似于excel中的趋势线?而且是幂函式的,求高手指点...

    origin中两组数已经画出散点图,如何新增类似于excel中的趋势线?而且是幂函式的,求高手指点以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让 ...

  5. 122345 java_【每天算法2】:用java语言实现,一个组数:122345这6个数,打印出它所有可能的组合;要求4不能在第3位,3和5不能相连。 | 学步园...

    一个组数:122345这6个数,打印出它所有可能的组合:要求4不能在第3位,3和5不能相连. 我在实现这个 感觉我的算法复杂度还是挺高的.过程中,不断的创建新的数组列别. 如果你有更好的算法,请发上来 ...

  6. 1145: 零起点学算法52——数组中删数II

    1145: 零起点学算法52--数组中删数II Time Limit: 1 Sec  Memory Limit: 64 MB   64bit IO Format: %lld Submitted: 29 ...

  7. 找出数组中两数之和为指定值的所有整数对

    一,问题描述 给定一个整型数组(数组中的元素可重复),以及一个指定的值.打印出数组中两数之和为指定值的 所有整数对 二,算法分析 一共有两种方法来求解.方法一借助排序,方法二采用HashSet 方法一 ...

  8. 洗牌-牛客 第一行一个数T(T ≤ 100),表示数据组数。对于每组数据,第一行两个数n,k(1 ≤ n,k ≤ 100),接下来一行有2n个数a1,a2,...,a2n(1 ≤ ai ≤ 1000

    题目描述: 洗牌在生活中十分常见,现在需要写一个程序模拟洗牌的过程. 现在需要洗2n张牌,从上到下依次是第1张,第2张,第3张一直到第2n张.首先,我们把这2n张牌分成两堆,左手拿着第1张到第n张(上 ...

  9. 1815. 得到新鲜甜甜圈的最多组数 状态压缩

    1815. 得到新鲜甜甜圈的最多组数 有一个甜甜圈商店,每批次都烤 batchSize 个甜甜圈.这个店铺有个规则,就是在烤一批新的甜甜圈时,之前 所有 甜甜圈都必须已经全部销售完毕.给你一个整数 b ...

最新文章

  1. on-my-zsh git 仓库下运行卡顿
  2. 三: cocos2d-x代码分析
  3. indesign选中不了图片删除_(54)批量给图片加上说明文字
  4. Leet Code OJ 237. Delete Node in a Linked List [Difficulty: Easy]
  5. 为什么说嵌入式开发比单片机要难很多?
  6. MinGW与MSVC编译的区别
  7. 考研 | 先预览一下考研真题是考研小白最快的入门方法(含21考研最新真题)
  8. linux下安装xz命令
  9. 火力发电厂与变电站设计防火标准_详细解析仓库防火设计标准
  10. android UI进阶之仿iphone的tab效果
  11. Zabbix proxy配置
  12. PWM驱动MOS管H桥电路
  13. python常用模块numpy解析(详解)
  14. SM2证书的鉴定方法——续上文国密算法
  15. 电子书下载:Adobe PDF 文档格式开发参考 PDF Reference 1.7
  16. 华为OD机试真题 Python 实现【快递投放问题】【2023 Q1 | 100分】
  17. Au入门系列之十:母带处理
  18. Z-score(Z值)的意义--转载
  19. matlab解比例导引法方程,[转载]比例导引法在三维制导中应用的程序详解与过程图解...
  20. vnc移植_【安富莱】开源原创高级玩法,用F429接SDRAM虚拟远程VNC桌面

热门文章

  1. oracle数据库第八章答案,Oracle培训(三十)——Oracle 11g 第八章知识点小结——处理数据...
  2. VMware ubuntu虚拟机怎么设置分辨率?(全屏显示、大屏显示)
  3. OpenCV Mat类详解和用法(官网原文)
  4. 关于人类肉眼识别模式的简单想法
  5. pycharm pycharm中用matplolib的ax3.plot_surface画出的3D(三维图)(三维函数)不能旋转怎么办?
  6. 初学__Python——Python数据类型之列表和元组
  7. 【Collection、泛型】
  8. python编辑器_10 个可以在平板电脑上使用的 Python 编辑器
  9. jdbc链接oracle报错ORA-12505解决办法
  10. asp.net session 如何知道是哪个浏览器客户端_微服务下的分布式session管理