-2

pは整数のリストです。

std::list<int> p;
    if ( 2 % p(0) == 0 );

ただし、pには「式には整数型またはスコープなしの列挙型が必要」というエラーがあります。

なんで?

4

1 に答える 1

2

list過負荷ではありませんoperator(int)、これはあなたが言うことができるための要件ですp(0)

p[0]listもオーバーロードしないことを意味する場合 operator[int]、これはvectormap(または実際にはoperator[keyType])などにのみ使用されます。これは、listがランダムアクセスを持たないためです(つまり、ループしない限り、要素を取得できません)。

ただし、次のようなことができます。

if (2 % p.front() == 0)

また

if (2 % *p.begin() == 0)

最初の要素にアクセスします。

于 2013-02-25T08:57:27.533 に答える