1

全て

イテレータを備えたいくつかの派手なコンテナを作成しました。ので、私は持っています

iterator begin() {
}

iterator end() {
}

const_iterator begin() const {
}

const_iterator end() const {
}

テストでは、コンテナをインスタンス化し、それを埋めてテストします。const バージョンと非 const バージョンの両方を呼び出すための受け入れられた/良い方法は何ですか? たとえば、次のような簡単なテスト

TEST( c.end() - c.begin() == c.size() );

const イテレータだけでなく、イテレータに対しても実行する必要があります。定数参照?いくつかの醜いキャスト?

4

2 に答える 2

5

const& を作成するだけです。

const container& constC= c;
TEST(constC.end() - constC.begin() == constC.size());
于 2016-07-29T01:18:42.860 に答える
1

stdそれらを過負荷にしないことは、慣習に従ってより良い解決策だと思います。

cbegin()and を代わりに宣言しcend()ます。

于 2016-07-29T01:15:39.053 に答える