数组的其他表示方法—— vector 和 array 的说明

本文详细介绍了C++中的vector和array容器。与传统数组不同,vector和array支持整体赋值。vector可通过两种方式创建,而array的大小必须在创建时指定。在C++11中,array还允许直接复制所有元素数据。示例代码展示了如何初始化、访问及操作这两个容器,强调了它们与普通数组的区别。
摘要由CSDN通过智能技术生成

一、简述

我们知道,数组不能够进行整体赋值,即不能直接用赋值语句将数组 a2 的内容赋给数组 a1(a1 = a2),只能逐元素复制数据,而C++中,vector 和 array 却可以。

二、详细说明

  1. vector
    ****包含于头文件<vector>
    创建语法:
    vector<type_Name> name(n_name); 其中,后面括号中的 n_name 代表 type_Name 型元素的个数,可以是常量,也可以是变量
    vector<type_Name> name; 和上面不同的是,后面没有括号,此时表示 type_Name 型元素的个数为 0 。

  2. array
    ****包含于头文件<array>
    创建语法:array<type_Name,n_name> name; 其中,n_name 代表 type_Name 型元素的个数,且必须是常量

  3. 二者的访问方法
    vector 与 array 可使用标准的数组表示方法对元素进行访问,即 数组名[下标]

三、示例

#include<iostream>
#include<array>        //C++11
#include<vector>       //STL C++98

using namespace std;

int main()
{
	double a1[4] = { 1.2,2.4,3.6,4.8 };    //C,C++
	vector<double> a2(4);    //C++98 STL vector 自动调整长度
	//在 C98 初始化不简单
	a2[0] = 1.0 / 3.0;
	a2[1] = 1.0 / 5.0;
	a2[2] = 1.0 / 7.0;
	a2[3] = 1.0 / 9.0;
	//C++11 创建和初始化 array
	array<double, 4> a3 = { 3.14,2.72,1.62,1.41 };      //array 长度固定
	array<double, 4> a4;
	a4 = a3;     //array对象可以直接复制全部元素数据,而数组只能主元素复制数据
	//使用 array 符号
	cout << "a1[2]: " << a1[2] << " at " << &a1[2] << endl;
	cout << "a2[2]: " << a2[2] << " at " << &a2[2] << endl;
	cout << "a3[2]: " << a3[2] << " at " << &a3[2] << endl;
	cout << "a4[2]: " << a4[2] << " at " << &a4[2] << endl;

	//不端行为
	a1[-2] = 20.2;         //将被转换为 *(a1 - 20) = 20.2
	cout << "a1[-2]: " << a1[-2] << " at " << &a1[-2] << endl;
	cout << "a3[2]: " << a3[2] << " at " << &a3[2] << endl;
	cout << "a4[2]: " << a4[2] << " at " << &a4[2] << endl;

	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

粉红橘红橘粉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值