| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1401 人关注过本帖
标题:关于C++比C#不好用的一点。
取消只看楼主 加入收藏
复旦
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:81
专家分:124
注 册:2018-10-29
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:0 
关于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);   两个都不行。


搜索更多相关主题的帖子: C++ C# 容器 value erase 
2018-12-09 22:11
快速回复:关于C++比C#不好用的一点。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011648 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved