给定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矩阵并应用上述方法,但有没有更有效的方法?
答案 0 :(得分:0)
获取您拥有的代码段,并将其应用于外部向量中的每个向量。
for (int i = 0; i < outerVector.size(); ++i) {
// Your snippet
}
如果你必须触摸二维数组中的每个元素,那么你所希望的最好的是O(n²)
算法。