0

私は多次元ベクトルのこの定義を使用しています:

Vector<Vector<sp<InputWindowHandle> > > mWindowHandles;

次の行を除いて、コードのほぼすべての場所で問題なく動作します。

(mWindowHandles[displayId]).removeAt(i--);

理由がわかりません。Vector の単一のエントリはベクトルであるべきではありませんか? これは私が得ているコンパイルエラーです:

「ssize_t android::Vector::removeAt(size_t) [with TYPE = android::sp]」の「this」引数として「const android::Vector >」を渡すと、修飾子が破棄されます

私が間違っていることを教えてください。

4

1 に答える 1

0

どうもありがとう @Component 10 Android での Vector の実装は、私が慣れ親しんでいる通常の std::vector とは異なるようです。アイテムを削除するには、次のようにする必要がありました。

Vector<sp<InputWindowHandle> >& oneDisplayWindowHandles = mWindowHandles.editItemAt(displayId); oneDisplayWindowHandles.removeAt(i--);

于 2012-07-16T08:16:39.580 に答える