c++ - 收集唯一的排序 vector

标签 c++ data-structures tree

我有数亿个包含 float 的排序 vector ,每个数组的大小相同且相当小(少于十个),我需要从这些 vector 中收集唯一的 vector ,

    vec1 = {1.0, 1.2, 1.4, 1.6, 1.8}
    vec2 = {1.0, 1.1, 1.3, 1.5, 1.7}
    vec2 = {1.0, 1.3, 1.4, 1.5, 1.6}

...

    SomeTree ={vec1, vec2, vec3 ...}

只有当每个元素在数值上都相同(达到一定精度)时,一个数组才被认为与另一个数组“相同”,是否有适合这种目的的特殊树或其他数据结构?

最佳答案

是的,有。它叫做std::set :

#include <vector>
#include <set>

int main()
{
    std::set<std::vector<double>> s{
        { 1.0, 1.1, 1.3, 1.5, 1.7 },
        { 1.0, 1.2, 1.4, 1.6, 1.8 },
        { 1.0, 1.1, 1.3, 1.5, 1.7 },
        { 1.0, 1.3, 1.4, 1.5, 1.6 },
        { 1.0, 1.2, 1.4, 1.6, 1.8 },
        { 1.0, 1.1, 1.3, 1.5, 1.7 },
        { 1.0, 1.2, 1.4, 1.6, 1.8 },
        { 1.0, 1.3, 1.4, 1.5, 1.6 },
        { 1.0, 1.3, 1.4, 1.5, 1.6 },
    };    
}

您可能希望深入分析模板的Compare 参数,以便定义符合您要求的less

关于c++ - 收集唯一的排序 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47189554/

相关文章:

c++ - 二进制搜索代码未通过效率检查

c++ - 如何在矩阵中使用指针。这行代码是做什么的/意思是 : int r=**(++b);

C++ STL 数据结构常量时间推送/弹出/通过索引随机访问元素的可靠指针

C++前十个自然数的平方和与和的平方之差

c++ - std::async() 的包装器不起作用

java - 从HashSet得到的流过滤器的时间复杂度是多少?

java - 树遍历

javascript - 创建一个与另一个形状相同的树数据结构

python - 使用后序遍历创建完美的二叉树

mysql - 获取存储在数据库中的孙子树的父级