我是靠谱客的博主 直率薯片,这篇文章主要介绍C++学习心得:求数组的元素个数,现在分享给大家,希望可以做个参考。

目录

一、字符数组  

1、推荐方法 strlen()

2、sizeof()

3、end()-begin()

二、未指定长度数组

1、推荐方法 sizeof

2、end()-begin()

三、综上所述

1、实际运用

2、方便用法


一、字符数组  

1、推荐方法 strlen()

     对于字符数组 char c[] = "12345",最好是使用strlen()

复制代码
1
2
3
4
5
6
7
8
9
char c[] = "12345"; char d[10] = "678"; cout << "strlen c = " << strlen(c) << endl; cout << "strlen d = " << strlen(d) << endl; 输出:5 3

2、sizeof()

sizeof() 求出的是数组占用的空间长度,而不是实际元素个数

如果定义数组时,未指定空间长度,则放入元素时自动申请空间,元素个数 = 数组长度

但是在字符数组中,末尾有一个‘/0’结束符,

复制代码
1
2
3
4
5
6
7
8
char c[] = "12345"; char d[10] = "678"; cout << "sizeof c = " << sizeof(c) / sizeof(c[0]) << endl; cout << "sizeof d = " << sizeof(d) / sizeof(d[0]) << endl; 输出:6 10

3、end()-begin()

      结果和sizeof 相同

复制代码
1
2
3
4
5
6
7
8
char c[] = "12345"; char d[10] = "678"; cout << "end-begin c = " << end(c) - begin(c) << endl; cout << "end-begin d = " << end(d) - begin(d) << endl; 输出:6 10

二、未指定长度数组

1、推荐方法 sizeof

     sizeof() 求出的是数组占用的空间长度,而不是实际元素个数

      如果定义数组时,未指定空间长度,则放入元素时自动申请空间,元素个数 = 数组长度

复制代码
1
2
3
4
5
6
7
8
9
int a[] = { 1,2,3,4,5 }; int b[10] = { 6,7,8 }; cout << "sizeof a = " << sizeof(a) / sizeof(a[0]) << endl; cout << "sizeof b = " << sizeof(b) / sizeof(b[0]) << endl; 输出:5 10

2、end()-begin()

      结果和sizeof 相同

复制代码
1
2
3
4
5
6
7
8
9
int a[] = { 1,2,3,4,5 }; int b[10] = { 6,7,8 }; cout << "end-begin a = " << end(a) - begin(a) << endl; cout << "end-begin b = " << end(b) - begin(b) << endl; 输出:5 10

三、综上所述

1、实际运用

     在实际项目中,应该避免这一操作,通常是在结构体中新建一个成员,用来记录数组中的元素个数

例:通讯录管理系统

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#define MAX 1000; //通讯录的最大容量 struct Person //联系人结构体 { string name; string telephone; } struct AddressBook //通讯录结构体 { Person personArray[MAX]; int size ; } int main() { AddressBook abs; //实例化一个AddessBook结构变量 abs.size = 0; }

2、方便用法

      实在需要求数组长度的话,最为方便的方法就是下面这种 ,创建数组时千万不要指定数组长度

复制代码
1
2
int a[] = {1, 2, 3}; length = sizeof(a) / sizeof(a[0]);

最后

以上就是直率薯片最近收集整理的关于C++学习心得:求数组的元素个数的全部内容,更多相关C++学习心得:求数组内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(62)

评论列表共有 0 条评论

立即
投稿
返回
顶部