请区分c++编程时用到的单词length和size
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请区分c++编程时用到的单词length和size相关的知识,希望对你有一定的参考价值。
我理解的是:
size:用字节数表示的大小,如sizeof
length:数组中数据的数目,如int aSomeInt[3] = 0, 0, 0的length是3,又如某个函数的原型func(int *pInfo, unsigned len)其中的len表示数组中含有多少int(显然这里不关心数组占的字节数)
但是!!!std::vector::size()返回的是数组中的数据数目,而不是vector的数据域占的字节数。这个size和sizeof中的size意思不同。
所以我很困惑,length和size两个词到底怎样区分?
另外,懂openGL的请看:
指定顶点数组的函数glVertexPointer(GLint size, ……)其中size又代表“多少个数据表示一个点”(如:如果使用三维坐标,size就是3)。这个size与上述的size意思又都不一样……
谁来帮我区别一下这两个词啊!我真心不想钻牛角尖,但是最近我快被这两个词弄晕了。我自己都难以统一命名规范,结果一个词在不同地方意思不一样,把自己绕进去了……
我不仅想知道STL中怎样用这两个词,还想了解其他情境下按什么规则使用它们。(比如给标识符命名时,什么情况下使用哪个词)
strcpy(str,"abcd")后,这时str的size仍是20,但字符串长度length为4.
当一种易产生歧义时,使用另一个,你所说的 vector::size()为什么不用length呢? 因向量的长度表示 sqrt( x1^2+...+xn^2),易混;这里用size表向量的维数。 参考技术A int
*n
=
new
int(10);
//初始化行数计数器
改成int
*n
=
new
int[10];
//初始化行数计数器
用小括号的意思是申请一个,赋值为10,中括号才是申请10个 参考技术B 标准库的string类型的length()成员函数和size()成员函数返回相同的东西:字符串中字符的数量追问
其他情境下呢……如果我要命名一个标识符,什么情况下该用哪个词?
追答std::vector::reserve()的作用是A directive that informs a vector of a planned change in 【size】它在出错时会抛出std::length_error……
再如C++标准对于operator new的描述有这么一句:
The allocation function attempts to allocate the requested amount of storage. If it is successful, it shall return the address of the start of a block of storage whose 【length】 in bytes shall be at least as large as the requested 【size】.
= =好吧我试图证明二者意思一样……
能不能硬说出点区别……这样一来我更不知道用length还是szie来命名了
参考技术C 所以说和用词没有关系,主要还是需要看APIAPI说这个size指代什么就是什么,不要去按照自己的猜想去使用追问
我在编写一个API……可我不知道怎样用这两个词。我几个月前对size和length的理解和现在的理解竟然不一样,这就是因为我一直也没弄明白他俩怎么用
换句话说,我必须区分这两个词,可是没有参考依据,因为别人的API里面同一个词意思不一样。你能帮我看看该怎么用吗?
如果是数组类型的,比如容器,size一般就是指容器里面元素个数
如果是数据类型,size可以指代数据占用内存大小(和sizeof类似)
java中的size,length,length()的区别
java中的size,length,length()的区别
一、size()
java中的length属性是针对数组说的,比如说你声明了一个数组,想知道这个数组的长度则用到了length这个属性
二、length()
java中的length()方法是针对字符串String说的,如果想看这个字符串的长度则用到length()这个方法
三、length
java中的size()方法是针对泛型集合说的,如果想看这个泛型有多少个元素,就调用此方法来查看!
四、例子
public class TEST {
public static void main(String[] args) {
String[] strs={"北京","上海","田径"};
System.out.println(strs.length);
String str="XXX,您好!";
System.out.println(str.length());
List<Integer> inn=new ArrayList<Integer>();
inn.add(10);
inn.add(11);
System.out.println(inn.size());
}
}
输出结果:
以上是关于请区分c++编程时用到的单词length和size的主要内容,如果未能解决你的问题,请参考以下文章
leetcode 58. 最后一个单词的长度(Length of Last Word)