C++ 为什么向量和数组的大小给出不同的输出
当我尝试用sizeof来表示元素时,我得到的是数组和向量中的不同答案C++ 为什么向量和数组的大小给出不同的输出,c++,arrays,vector,sizeof,C++,Arrays,Vector,Sizeof,当我尝试用sizeof来表示元素时,我得到的是数组和向量中的不同答案 #include<iostream> #include<vector> using namespace std; int main(){ vector<int> num = {1,2,5,4}; int k = sizeof(num)/sizeof(num[0]); cout << k << endl; int nums[] = {1
#include<iostream>
#include<vector>
using namespace std;
int main(){
vector<int> num = {1,2,5,4};
int k = sizeof(num)/sizeof(num[0]);
cout << k << endl;
int nums[] = {1,2,5,4};
int w = sizeof(nums)/sizeof(nums[0]);
cout << w << endl;
}
#包括
#包括
使用名称空间std;
int main(){
向量num={1,2,5,4};
int k=sizeof(num)/sizeof(num[0]);
cout让我们看看sizeof返回的值:
查询对象或类型的大小
当应用于类类型时,结果是
该类加上放置此类对象所需的任何附加填充
在一个数组中
vector
和int[]
是完全不同的东西。vector使用动态存储,而数组使用自动存储
sizeof(向量)
返回vector类的大小。它不能按您期望的方式工作,原因与它不能在动态分配的数组上工作相同。向量的大小不取决于元素的数量。您为什么要执行该输出?您是否阅读了sizeof
的功能?预期为4-如果您说明为什么要执行编辑此输出,以便其他人知道您所犯的错误在哪里。简单的回答是vector
不是数组。sizeof(x)/sizeof(x[0]是合理的第一种解释)
是获取所有容器长度的方法,但这不是真的。@iabishek15——这样想吧,
的大小就像知道一座大楼有多高一样。它不会告诉你大楼里有多少人,因为这可能会改变。