우리는 왜 이렇게 수행하십시오 operator()
기능이 struct less_than_key
에 포함 된 이유는 여기에 위의 코드에서커스텀 객체의 벡터를 정렬하는 동안 struct의 정의 내부에 compare 함수를 포함시키는 이유는 무엇입니까?
struct MyStruct
{
int key;
std::string stringValue;
MyStruct(int k, const std::string& s) : key(k), stringValue(s) {}
};
struct less_than_key
{
inline bool operator() (const MyStruct& struct1, const MyStruct& struct2)
{
return (struct1.key < struct2.key);
}
};
std::vector <MyStruct> vec;
vec.push_back(MyStruct(4, "test"));
vec.push_back(MyStruct(3, "a"));
vec.push_back(MyStruct(2, "is"));
vec.push_back(MyStruct(1, "this"));
std::sort(vec.begin(), vec.end(), less_than_key());
스 니펫. 구조체 정의에서 제거하면 어떻게됩니까?
당신은 functor 대신 정규 함수를 사용합니까? – Jarod42
"구조체 정의에서 제거하면 어떻게됩니까?"시도해 보셨습니까? – Jodocus