通过其char键对对象指针的C 向量进行排序
sort a c++ vector of object pointers by its char key
我有一个对象指针的向量,现在我想根据其char键对它们进行排序。更具体地说,我想按照"词典顺序"对char键(char c(进行分类。
例如,假设我有一个Pointers <o1, o2, o3, o4, o5>
对象的向量,并且: o1->c = 'd'
;o2->c = 'k'
;o3->c = 'x'
;o4->c = 'a'
;o5->c = 'j'
然后在排序后,向量应为: <o4, o1, o5, o2, o3>
我该怎么做?谢谢。
std::sort
允许您传递自定义谓词:
std::vector<Object*> objects = ...;
std::sort(objects.begin(),
objects.end(),
[](Object const * x, Object const * y) { return x->c < y->c; });
如果您有一个不能使用lambdas的旧编译器,则必须创建一个实现比较的类:
struct Foo
{
bool operator()(Object const * x, Object const * y) const
{
return x->c < y->c;
}
};
std::sort(objects.begin(), objects.end(), Foo());
相关文章:
- 将结构向量排序为子组
- C++数组与向量排序(在我的情况下,向量比数组慢~2.5倍(无优化))
- 如何在对向量排序后更改索引值?c++
- C++向量排序给出0作为输出
- 将许多向量排序在一起
- 根据一个向量对多个向量排序
- 编译错误向量排序和联合
- C++我自己的函数进行向量排序
- 将字符串的向量排序为日期"yyyymmdd"
- C++ 通过使用旧向量进行预排序来改进向量排序
- C 向量排序 .h .cpp中的单独文件
- 向量排序-c++
- 将向量排序到一个无序映射c++11中
- 向量的向量排序
- c++向量排序方法编译失败,返回预期表达式
- 如何对bitset向量排序
- 向量排序的基础上只有先
- 我如何以相同的方式对两个向量排序,而条件只使用其中一个向量
- 列表排序和结构体向量排序之间的性能差距.c++
- 如何基于第二个字符串对字符串向量的向量排序