如何将 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 指向第一个和数组末尾元素之后的一个 ?
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 指向第一个和数组末尾元素之后的一个 ?