为什么向量和数组的sizeof给出不同的输出[重复]

问题描述 投票:0回答:1

此问题已经在这里有了答案:

[当我尝试通过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

c++ arrays vector sizeof
1个回答
0
投票

vector<int>int []完全不同。向量使用动态存储,而数组使用自动存储。

sizeof(vector)返回向量类的大小。由于相同的原因,它无法按预期方式运行,因此无法在动态分配的数组上运行。

© www.soinside.com 2019 - 2024. All rights reserved.