在2D std :: vector <vector <double>&gt; </vector <double>中查找唯一值的有效方法

时间:2013-10-18 00:28:47

标签: c++ vector stl unique

给定1D向量std::vector<double> v,识别我所知道的唯一元素的最有效方法是:

sort(v.begin(), v.end());
v.erase(unique(v.begin(), v.end()), v.end());

在2D矢量中找到唯一元素的最有效方法是什么(即2D矩阵的所有元素中的唯一元素) std::vector<std::vector<double>> v

编辑:一个明显的解决方案可能是展平2D矩阵并应用上述方法,但有没有更有效的方法?

1 个答案:

答案 0 :(得分:0)

获取您拥有的代码段,并将其应用于外部向量中的每个向量。

for (int i = 0; i < outerVector.size(); ++i) {
  // Your snippet
}

如果你必须触摸二维数组中的每个元素,那么你所希望的最好的是O(n²)算法。