pは整数のリストです。
std::list<int> p;
if ( 2 % p(0) == 0 );
ただし、pには「式には整数型またはスコープなしの列挙型が必要」というエラーがあります。
なんで?
list過負荷ではありませんoperator(int)、これはあなたが言うことができるための要件ですp(0)。
p[0]、listもオーバーロードしないことを意味する場合 operator[int]、これはvector、map(または実際にはoperator[keyType])などにのみ使用されます。これは、listがランダムアクセスを持たないためです(つまり、ループしない限り、要素を取得できません)。
ただし、次のようなことができます。
if (2 % p.front() == 0)
また
if (2 % *p.begin() == 0)
最初の要素にアクセスします。