![]() |
气宇轩昂的硬盘 · vector存入共享内存(了解) - ...· 3 周前 · |
![]() |
寂寞的青椒 · 深度学习模型部署——基于Onnx ...· 2 周前 · |
![]() |
安静的人字拖 · opencv:RGB转YUV调用cvtCol ...· 1 年前 · |
![]() |
曾经爱过的皮蛋 · python - OSError: ...· 1 年前 · |
![]() |
知识渊博的单车 · 为什么有一些程序员很傲慢?-开源基础软件社区 ...· 1 年前 · |
C++ 支持 数组 数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。
数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 numbers[0]、numbers[1]、...、numbers[99] 来代表一个个单独的变量。数组中的特定元素可以通过索引访问。
所有的数组都是由连续的内存位置组成。最低的地址对应第一个元素,最高的地址对应最后一个元素。
在 C++ 中要声明一个数组,需要指定元素的类型和元素的数量,如下所示:
type arrayName [ arraySize ];这叫做一维数组。 arraySize 必须是一个大于零的整数常量, type 可以是任意有效的 C++ 数据类型。例如,要声明一个类型为 double 的包含 10 个元素的数组 balance ,声明语句如下:
double balance[10];现在 balance 是一个可用的数组,可以容纳 10 个类型为 double 的数字。
在 C++ 中,您可以逐个初始化数组,也可以使用一个初始化语句,如下所示:
double balance[5] = {1000.0, 2.0, 3.4, 7.0, 50.0};大括号 { } 之间的值的数目不能大于我们在数组声明时在方括号 [ ] 中指定的元素数目。
如果您省略掉了数组的大小,数组的大小则为初始化时元素的个数。因此,如果:
double balance[] = {1000.0, 2.0, 3.4, 7.0, 50.0};您将创建一个数组,它与前一个实例中所创建的数组是完全相同的。下面是一个为数组中某个元素赋值的实例:
balance[4] = 50.0;上述的语句把数组中第五个元素的值赋为 50.0。所有的数组都是以 0 作为它们第一个元素的索引,也被称为基索引,数组的最后一个索引是数组的总大小减去 1。以下是上面所讨论的数组的的图形表示:
double salary = balance[9];上面的语句将把数组中第 10 个元素的值赋给 salary 变量。下面的实例使用了上述的三个概念,即,声明数组、数组赋值、访问数组:
上面的程序使用了 setw() 函数 来格式化输出。当上面的代码被编译和执行时,它会产生下列结果:
Element Value 0 100 1 101 2 102 3 103 4 104 5 105 6 106 7 107 8 108 9 109在 C++ 中,数组是非常重要的,我们需要了解更多有关数组的细节。下面列出了 C++ 程序员必须清楚的一些与数组相关的重要概念:
概念描述 多维数组 C++ 支持多维数组。多维数组最简单的形式是二维数组。 指向数组的指针 您可以通过指定不带索引的数组名称来生成一个指向数组中第一个元素的指针。 传递数组给函数 您可以通过指定不带索引的数组名称来给函数传递一个指向数组的指针。 从函数返回数组 C++ 允许从函数返回数组。deanliuliu
229***47@qq.com
prigioni
763***799@qq.com
salonshj
742***433@qq.com
张家子谦
492***694@qq.com
cliff
cli***77@gmail.com
#include<iostream> using namespace std; template<class T> int length(T& arr) //cout << sizeof(arr[0]) << endl; //cout << sizeof(arr) << endl; return sizeof(arr) / sizeof(arr[0]); int main() int arr[] = { 1,5,9,10,9,2 }; // 方法一 cout << "数组的长度为:" << length(arr) << endl; // 方法二 //cout << end(arr) << endl; //cout << begin(arr) << endl; cout << "数组的长度为:" << end(arr)-begin(arr) << endl; system("pause"); return 0;输出结果为:
数组的长度为:6 数组的长度为:6对于字符串数组,可以用 strlen() 函数来获取字符串数组的长度。
Vector(向量): C++ 中的一种数据结构,确切的说是一个类。它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间的目的。
1.文件包含:
首先在程序开头处加上 #include<vector> 以包含所需要的类文件 vector 。
还有一定要加上 using namespace std;
2.变量声明:
2.1 例: 声明一个 int 向量以替代一维的数组: vector <int> a; (等于声明了一个 int 数组 a[],大小没有指定,可以动态的向里面添加删除)。
2.2 例: 用 vector 代替二维数组.其实只要声明一个一维数组向量即可,而一个数组的名字其实代表的是它的首地址,所以只要声明一个地址的向量即可,即: vector <int *> a 。同理想用向量代替三维数组也是一样, vector <int**>a; 再往上面依此类推。
3.具体的用法以及函数调用:
3.1 得到向量中的元素和数组一样,例如:
vector <int *> a int b = 5; a.push_back(b);//该函数下面有详解 cout<<a[0]; //输出结果为5
使用数组给向量赋值:
vector<int> v( a, a+sizeof(a)/sizeof(a[0]) );
int a[]={1,2,3,4,5,6,7,8,9}; typedef vector<int> vec_int; vec_int vecArray(a,a+9);
炫明
351***8586@qq.com
jishux2
jis***2@outlook.com