C++:检查向量中的元素是否大于另一个具有相同索引的元素的有效方法?
C++: Efficient way to check if elements in a vector are greater than elements in another having same indices?
我有一个这样的vector < vector <int> >
:
v = {{1,2,3}, {4,2,1}, {3,1,1}....}}
v
的所有元素,如v[0]
、v[1]
、v[2]
...具有相同的大小。可能存在重复的元素。
我试图做的是查找并删除被另一个向量(如v[1]
)"主要化"的向量(如v[2]
),即v[1]
的所有元素都大于/等于v[2]
中的相应元素(按索引顺序)。
这样做的一种天真的方法是遍历v
并将每个向量与另一个向量进行比较,并进一步将每个元素与另一个向量的元素进行比较。
但我觉得必须有更好的方法来做到这一点,而不会O(n^3)
v
中所有向量的元素数量。
如果多个向量相等,我只需要其中一个(即删除除一个以外的所有向量)。随机选择就足够了。
任何想法或想法,不胜感激!
这称为点集的最大值。 对于二维和三维,这可以在O(n log n)时间内求解。 对于超过三维,这可以在 O(n(log n)^(d − 3) log log n) 时间内求解。 对于随机点,可以使用线性预期时间算法。
相关文章:
- 在对向量中查找元素的索引
- 当该数组的索引中没有元素时,指针指向什么?
- 如何在 STL 函数中找到传递给谓词的元素的索引?
- 如何在C++中递归地找到max元素的索引?
- 编译器(Visual C++)如何优化按索引访问矢量元素?
- 保持排序的数据结构,允许log N插入时间,并且可以返回我在log N中查找的元素的索引
- 使用推力根据索引更改某些元素的值
- 为什么 min_element() 返回最小元素的索引,而不是迭代器?
- CPtrList - 如何获取元素的索引?
- 获取结构 c++ 中元素的索引
- C++ STL 数据结构常时按索引推送/弹出/随机访问,并具有指向元素的可靠指针
- 矢量指针索引处的读取元素
- C++函数返回两个 char 数组的相同索引元素
- 特征:类似 numpy 的元素索引
- 如何在另一个数组中找到一个未排序数组的不同元素索引?
- C 无法使用嵌套环将数组的元素索引
- Opencv Mat的元素索引产生垃圾
- 在c++中,当元组的元素索引在运行时已知时,是否有可能获得该元素的类型?
- 按内容访问QVector元素索引
- C++ 矢量元素索引