202406240944_数组知识总结
- ✏随笔
- 数组理论知识
- 语法回顾
- C++ length()、size()、sizeof()三者的区别
(Weather::上海 ⛅多云,23~30℃ 良 冷风徐徐🌬️)
✏随笔
数组理论知识
-
数组是存放在连续内存空间上的相同类型数据的集合。
-
数组下标都是从0开始的。
-
数组内存空间的地址是连续的
-
注意vector 和 array的区别:
- vector的底层实现是array,严格来讲vector是容器,不是数组。
- 当不知道数组的大小,可以动态地读取输入直到结束(例如输入文件结束或用户手动结束输入)。在这种情况下,使用
vector
容器是一个更好的选择,因为vector
能够动态调整其大小。可使用while循环输入并存入一个vector整型变量中,以回车结束输入。
vector <int> s; int a; while(cin >> a){ s.push_back(a); if ('\n' == cin.get()) { break; } }
-
数组的元素是不能删的,只能覆盖
-
二维数组在内存的空间地址是连续的
语法回顾
C++ length()、size()、sizeof()三者的区别
- length()只是用来获取字符串的长度
string str = “asdfghjkl”
str.length() = 9
- 在获取字符串长度时,size()函数与length()函数作用相同。除此之外,size()函数还可以获取vector类型的长度。
vector < int> num(15,2)
num.size() = 15
- sizeof()运算符用来求对象所占内存空间的大小。
char c[] = "asdsds";
char* cc = c;
char cn[40] = "asdsds";
int a[] = {1,2,3,4,5,6};
int* aa = a;
cout << sizeof(c) << sizeof(cc) << sizeof(_cc) << sizeof(cn);
cout << sizeof(a) << sizeof(aa) << sizeof(_aa);结果输出:
sizeof(c) = 7 //c是数组,计算到'\0'位置,结果为6 * 1+1=7
sizeof(cc) = 8 //cc为指针类型,大小为8
sizeof(*cc) = 1 //*cc指向c的第一个字符,大小为1
sizeof(cn) = 40 //开辟40个char空间,大小为40 * 1=40
sizeof(a) = 24 //a是数组,但不需计算到'\0',结果为6 * 4=24
sizeof(aa) = 8 //aa为指针类型,大小为8
sizeof(*aa) = 4 //*aa指向a的第一个数字,大小为4