关于C++比C#不好用的一点。
C#里面有一个List容器跟C++里的Vector容器类似。在C#里有一个T类,a,b,c.已经装在TList容器里面。
如果我想从TList容器从删除这三个元素的话,List.Remove(a);
List.Remove(b); List.Remove(c)就行了。
但是C++里面,如果有一个T类,a,b,c对象。 已经装在TVector容器里面。
然后,T类有一个成员变量 float value;
如果我想从TVector里面删除这三个对象的话,要这样写!
Vector<T>::iterator iter;
for (iter=TVector.begin();iter!=TVector.end();++iter)
{
if ((*iter).value==a.value)
TVector.erase(iter);
if ((*iter).value==b.value)
TVector.erase(iter);
if ((*iter).value==c.value)
TVector.erase(iter);
}
如果需要很多东西才能分辨每一个元素的话,上面的代码要边长很多。
这是C++语言本身的缺点还是我对C++的了解不够,C++也有要一个很方便的删除方式?
我试过 TVector.erase(a); TVector.erase(&a); 两个都不行。