我正在使用多维向量的这个定义:
Vector<Vector<sp<InputWindowHandle> > > mWindowHandles;
除了这一行之外,它几乎在代码中的任何地方都能正常工作:
(mWindowHandles[displayId]).removeAt(i--);
我不明白为什么。不是Vector的单个条目应该是一个向量吗? 这是我得到的编译错误:
传递'const android :: Vector&gt;'作为'ssize_t android :: Vector :: removeAt(size_t)的'this'参数[与TYPE = android :: sp]'丢弃限定符
你能告诉我我做错了什么吗?
答案 0 :(得分:0)
非常感谢@Component 10 看起来像android中的Vector的实现不同于我以前使用的普通std :: vector。 为了删除一个项目,我必须这样做:
Vector<sp<InputWindowHandle> >& oneDisplayWindowHandles = mWindowHandles.editItemAt(displayId);
oneDisplayWindowHandles.removeAt(i--);