栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

力扣错误记录(75c++)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

力扣错误记录(75c++)

一、问题

①在leetcode中使用sizeof计算数组长度执行不通过,在自己vs中可以

②在leetcode中使用nums.size()计算数组长度执行通过,在自己vs不可以

③使用题目提示的n = length编译不通过,在自己vs也不可以

二、原因

leetcode使用的是容器形参,我自己vs定义没有使用容器vector,而是使用数组

①sizeof用来计算基本数据类型,如:

int arr[5];
char arr2[] = "asdfg";
char arr3[100] = "asdfg";
int *p;
int *p2 = arr;
则:
sizeof(arr) = 20 //5 个元素,每个元素占 4 字节
sizeof(arr) / sizeof(arr[0]) = 5
sizeof(arr2) = 6 //字符串末尾自动分配一个 ''
sizeof(arr3) = 100 //指定了大小的 char 型数组,指定多大就有多大
sizeof(int) = 4
sizeof(char) = 1
sizeof(*p) = 8
sizeof(*p2) = 8 //指针变量都是八个字节

如果用sizeof计算vector类型,则会出错,如:

有一个vector类型vec
vec中存放了 1 个元素,sizeof(vec)= 20
有一个vector类型vec2
vec2中存放了 2 个元素,sizeof(vec2)= 20

可见,sizeof计算vector类型事与愿违,并且verctor类型的大小与元素个数无关 。

②在c++中length()只用来计算字符串长度,如:

char arr[] = "abcd";
int arr2[3];
string str = "abcd";
则:
arr.length()报错
arr2.length()报错
str.length() = 4 //不是字符数组,不会自动加''

③在c++中,size()可以计算字符串长度,还可以计算vector类型长度

④区分length和length(),length是属性,length()是方法.

length:对于一般集合类,取得其集合长度,例如:数组.length可以取得数组长度。

length():和c++一样,在Java中,对于一般字符串类,可以取得字符串长度

注意:length在Java中可以使用它,但在c++中不能使用

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/849565.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号