0

次のコードではstd::array、関数の引数としてのサイズを取得する必要があります。コンテナのサイズは変わらないはずなので、私はそれを好みstd::arrayました。std::vectorただし、コンパイラは次のように文句を言いますerror: ‘n’ is not a constant expression。関数の引数から配列のサイズを取得するにはどうすればよいですか?

main.cpp:

#include <iostream>
#include <array>

using namespace std;

void fnc(const int n)
{
    array<int,n> a;
}

int main()
{    
    fnc(5);    

    return 0;
}
4

3 に答える 3

3

それはいけません。配列のサイズは定数式である必要があります。つまり、コンパイル時に認識されている必要があります。関数の引数の場合、関数は任意の引数で呼び出すことができるため、それは不可能です。std::vector を使用してください - ほとんどの場合、パフォーマンスの違いは見られません。

于 2014-07-15T21:35:18.697 に答える