在struct上使用parallel_sort算法

时间:2013-12-14 11:48:38

标签: c++ sorting

如何在此结构中使用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());

完成!,我希望这有助于其他人。

猜猜是时候把我的博士学位排序算法了!

1 个答案:

答案 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));