Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在结构上使用并行排序算法_C++_Sorting - Fatal编程技术网

C++ 在结构上使用并行排序算法

C++ 在结构上使用并行排序算法,c++,sorting,C++,Sorting,如何使用此结构: 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(

如何使用此结构:

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());
好了!,我希望这对其他人有帮助


我想是时候攻读排序算法博士学位了

当您可以轻松使用std::string时,不要使用C样式的字符串

因为您的结构只包含一个字符串,所以您可能只需要使用std::string,它实现了并行排序工作所需的运算符


错误显而易见。去检查向量的接口,如果你还没有线索,请考虑在我的第一个评论中的建议。我仍然要告诉你使用STD::String而不是char数组。它使这样的代码初始化更加安全和优雅;平行_sortz,it+项目@PurkadotCasaver:我明白你的观点,我会认真考虑的。上面的代码有任何进步,但仍然不起作用…谢谢你的建议,但是你能帮我用字符来做吗?我试过了,几乎把我的代码做了。correct@SkyRipper,你为什么要加糖?因为性能原因,我知道它很少,但这些都很重要,我有很多数据,都是基于你很难弄清楚这两种解决方案是如何工作的。我觉得你没有分析两种解决方案,看哪一种更快,只是假设(很可能是错误的)裸字符数组更快。
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));