2012-07-16 32 views
0

我使用多維向量的定義是:多維矢量不會讓我刪除項目

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

它正常工作,幾乎無處不在,除了代碼這一行:

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

我不明白爲什麼。 Vector不是單個條目應該是一個向量嗎? 這是編譯錯誤我得到:

傳遞 'const的機器人::矢量>' 爲 '這個' 的「ssize_t供機器人::向量參數:: RemoveAt移除(爲size_t)[用TYPE = 機器人: :sp]'discards qualifiers

你能告訴我我做錯了什麼嗎?

+4

你的'const'方法或者是任何機會變量'const'? – 2012-07-16 07:30:27

+0

Luchian說道:'傳遞const ...因爲這個...放棄了限定詞' – chris 2012-07-16 07:31:38

+0

也許[sscce](http://sscce.org/)會幫助你。 – chris 2012-07-16 07:35:52

回答

0

非常感謝@Component 10 看起來像在android中執行Vector的方式不同於普通的std :: vector我習慣了。 爲了刪除一個項目,我不得不這樣做:

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