容器中存的是结构体,有什么好办法对其进行排序吗?

fox_liucx 2013-07-28 11:44:05
假如有一个结构体,里面都是string类型的成员,然后用vector保存这样的结构体,我现在想通过其中一个成员为标准,对vector里面的所有结构体进行排序(还有去除相同的),有什么好办法吗?
...全文
169 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
IT界的厨师 2013-07-29
  • 打赏
  • 举报
回复
很明显set啊 重载下《 小于号
turing-complete 2013-07-28
  • 打赏
  • 举报
回复
依照您的需求,std::set更合适。
大尾巴猫 2013-07-28
  • 打赏
  • 举报
回复
写一个bool的comp函数,指定相应的string成员的前后关系,比如小于或者大于 然后用std::sort
ri_aje 2013-07-28
  • 打赏
  • 举报
回复
std::sort,第三个参数用 lambda 就行了。
max_min_ 2013-07-28
  • 打赏
  • 举报
回复

以结构体中一个结构成员为排序依据排序
wangyangkobe 2013-07-28
  • 打赏
  • 举报
回复
int main()
{
	vector<string> vec;

	vec.push_back(string("yang"));
	vec.push_back(string("zhang"));
	vec.push_back(string("li"));

	cout<<"Befor sorting: ";
	copy(vec.begin(), vec.end(), ostream_iterator<string>(cout, " "));
	cout<<endl;

	sort(vec.begin(), vec.end(), [](const string& a, const string& b){ return a < b; });

	cout<<"After sorting: ";
	copy(vec.begin(), vec.end(), ostream_iterator<string>(cout, " "));
	cout<<endl;
}
using C++ 11中的lamda表达式。

64,643

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧