此问题已经在这里有了答案:
[当我尝试通过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
vector<int>
和int []
完全不同。向量使用动态存储,而数组使用自动存储。
sizeof(vector)
返回向量类的大小。由于相同的原因,它无法按预期方式运行,因此无法在动态分配的数组上运行。