如何将 std::sort() 与 std::unique_ptr<[]> 一起使用?

How can I use std::sort() with std::unique_ptr<[]>?

std::unique_ptr<type[]> D{ std::make_unique<type[]>(10'000) };

std::sort(D2[0], D2[10'000], [](auto& a, auto& b)->bool {return a < b; }); //error

我使用std::unique_ptr<[]>读取二进制文件。 如果我想对这些数据进行排序,我是否必须制作另一个矢量或其他东西? 我不知道如何将 sort func 与 unique_ptr<[]> 一起使用。你能告诉我怎么走吗?

您可以使用指针作为排序例程的迭代器:

std::sort(D.get(), D.get() + 10'000);

您知道吗,在 C++11 及更高版本中,迭代器 header 为内置数组类型提供 begin() 和 end() 函数,return 指向第一个和数组末尾元素之后的一个 ?