当我尝试通过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,2,5,4};
int w = sizeof(nums)/sizeof(nums[0]);
cout << w << endl;
}
预计4 4
输出3 4
答案 0 :(得分:0)
让我们看看sizeof会返回什么:
sizeof查询对象或类型的大小。
应用于类类型时,结果是对象的大小 该类以及放置此类对象所需的任何其他填充 在一个数组中。
vector<int>
和int []
是完全不同的东西。向量使用动态存储,而数组使用自动存储。
sizeof(vector)
返回向量类的大小。出于同样的原因,它无法按预期方式运行,因为它无法在动态分配的数组上运行。