一、关于sizeof()和.size()
sizeof(a)返回的是对象占用内存的字节数,而a.size()是string类定义的一个返回字符串大小的函数,两个是完全不一样的概念。
明确两者的概念和作用:
1、size()函数:
c++中,在获取字符串长度时,size()函数与length()函数作用相同。 除此之外,size()函数还可以获取vector类型的长度。
例如:vector < int> num(15,2) ,则:num.size() = 15。
2、sizeof():
sizeof()运算符用来求对象所占内存空间的大小。
假设以下对象,分别使用sizeof函数:
执行输出结果:
扩展资料
sizeof(...)是运算符,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。
size是由string vector 和bitset定义的函数,分别用于返回字符个数,元素个数和二进制位的数。string和vector的size成员函数用以返回size_type类型的值。bitset返回size_t的值。
用法,例如string
string st("fddddddddgs");
cout<<"the size of"<<st<<"is"<<st.size();
打印st中的字符个数
size其实就是计算不同类型容器中的元素个数的。
二、当需要输入一个长度不定的数组时,需要用到vector
#include<iostream>
#include<vector>
using namespace std;
int main()
{
char ch;
int n;
vector<int> nums;
cout<<"以空格为间隔输入一组数据:"; //考虑是否可以把空格改为逗号?
while(scanf("%d", &n) != EOF) // 多行输入
{
nums.push_back(n);
ch = getchar(); // 读取数字之间的空格
if(ch != ' ') // 如果不是空格,结束多行输入
break;
}
cout<<"输入的数据为:"<<endl;
for(int i=0;i<nums.size();i++){
cout<<nums[i]<<endl;
}
return 0;
}
三、其他
1.力扣中代码需要以return 结尾
2.注意区间开闭和后续的赋值
(left,right]时 left = mid;
[left,right] 时left = mid + 1