如何在此结构中使用parallel_sort:
struct d
{
char name[5];
};
struct less_than_key
{
inline bool operator() (const d& struct1, const d& struct2) const
{
return strcmp(struct1.name, struct2.name) == -1;
}
};
vector<d> my_d;
my_d.resize(3);
strcpy(my_d[0].name, "mike");
strcpy(my_d[1].name, "joe");
strcpy(my_d[2].name, "anna");
parallel_sort(my_d.begin(), my_d.end(), less_than_key());
完成!,我希望这有助于其他人。
猜猜是时候把我的博士学位排序算法了!
答案 0 :(得分:2)
当您可以轻松使用std::string
时,请勿使用C风格的字符串。
由于您的结构只包含一个字符串,您可能只想使用std::string
(它实现了parallel_sort
工作所需的运算符)。
std::vector<std::string> vec(3);
vec.emplace_back("mike");
vec.emplace_back("joe");
vec.emplace_back("anna");
然后,在函数签名之后,您只需要找到开始和结束迭代器:
parallel_sort(std::begin(vec), std::end(vec));