包含地址的排序向量
sorting vector containing addresses
我有一个名为Entry的结构,它包含两个字符串和一个int:
struct Entry
{
string id, name;
int age;
};
我有一个向量包含一堆Entry,另一个向量在第一个向量中包含Entry的地址。
矢量1:
vector<Entry> table1
矢量2:
vector<Entry*> table2
我希望能够根据表1中项目的id对表2进行排序。
我该怎么做?我试着简单地使用排序函数。。但这不起作用,因为我认为这只是按地址排序。。这不是我想要的。。
您可以将自定义比较器传递给std::sort
:
std::sort(table2.begin(), table2.end(), [](Entry* a, Entry* b) {
return a->id < b->id;
});
实时示例
如果对于Entry
类,operator<
是有意义的,那么重载它并减少比较器的主体可能是个好主意:
bool operator<(Entry const& a, Entry const& b) {
return a.id < b.id;
}
// …
std::sort(table2.begin(), table2.end(), [](Entry* a, Entry* b) { return *a < *b; });
实时示例
相关文章:
- 将结构向量排序为子组
- C++数组与向量排序(在我的情况下,向量比数组慢~2.5倍(无优化))
- 如何在对向量排序后更改索引值?c++
- C++向量排序给出0作为输出
- 将许多向量排序在一起
- 根据一个向量对多个向量排序
- 编译错误向量排序和联合
- C++我自己的函数进行向量排序
- 将字符串的向量排序为日期"yyyymmdd"
- C++ 通过使用旧向量进行预排序来改进向量排序
- C 向量排序 .h .cpp中的单独文件
- 向量排序-c++
- 将向量排序到一个无序映射c++11中
- 向量的向量排序
- c++向量排序方法编译失败,返回预期表达式
- 如何对bitset向量排序
- 向量排序的基础上只有先
- 我如何以相同的方式对两个向量排序,而条件只使用其中一个向量
- 列表排序和结构体向量排序之间的性能差距.c++
- 如何基于第二个字符串对字符串向量的向量排序