0

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

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

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

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

4

1 回答 1

0

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

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

如果您必须触摸 2d 数组中的每个元素,那么您可以期望的最好的就是O(n²)算法。

于 2013-10-18T00:33:20.127 回答