【发布时间】:2020-04-11 13:09:49
【问题描述】:
您好,我想知道是否可以做这样的事情? // 谢谢 ! :)
struct PET
{
const char* pet;
const int age;
};
bool Sort(const PET& first, const PET& second)
{
return first.pet < second.pet;
}
void Foo(const std::vector<PET> pets)
{
std::sort(pets.begin(), pets.end(), Sort); /* Does not work */
std::cout << pets[0].pet;
std::cout << pets[0].age;
}
【问题讨论】:
-
不,这实际上是不可能的,因为你的向量的元素是不可分配的,因为
const int成员。请注意,另一个成员是可分配的,const不适用于指针,而仅适用于它指向的内容。两个任务:首先,问问自己是否需要这个const成员。其次,继续阅读你的 C++ 教程,使用像std::sort()这样的算法通常在高级部分,但应该在那里覆盖。此外,作为这里的新用户,请使用tour 并阅读How to Ask。尤其要避免是/否问题。 -
啊,太糟糕了,谢谢你的回答 :) 对不起。
-
在已有 cmets 或答案后编辑问题也确实令人困惑,以至于它与原始问题完全不同,并且这些 cmets 不再适用。
标签: c++ sorting struct constants