在 c++ 中将向量与一个或多个相似元素组合在一起
Combing vectors with one or more similar elements in c++
美好的一天,
我有一个逻辑问题,我被困住了。
我有一个包含 N 个整数的向量向量。可以将其视为一个充满整数的锯齿状数组。
例如:
vector<vector<int>> myVector
(假设,这些是向量的内容)
myVector[0] = {0,1} myVector[1] = {1,2} myVector[2] = {3,4,5}
myVector[3] = {4,5,6} myVector[4] = {7,8}
我想做的是组合共享相同元素的向量。如您所见,myvector[0]
和myvector[1]
共享相同的元素值"1",对于myvector
2 和 3 也是如此,因为它们共享相同的元素值"4"。myVector[4]
保持不变,因为它不与其他向量共享任何值
我得到的产品应该是这样的
newVector[0]= {0,1,2} newVector[1]= {3,4,5,6} newVector[2]= {7,8}
请帮忙:)
一个明显而简单的方法是:
- 如有必要,对单个
vector
进行预排序 - 通过
vector<vector<int>>
循环i
- 迭代器
j
通过i+1
..end()
- 在向量
*i
和*j
中使用迭代器k
和l
,前进*k
和*l
中值较小的一个,直到找到共享值或达到end()
:如果有共享值,则附加*j
以*i
并重新排序,否则前进j
- 迭代器
这可能不是最佳的解决方案性能,但您可以实现/分析它,并让我们知道您是否必须拥有更快的解决方案。
相关文章:
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 运行同一解决方案的另一个项目的项目
- 挂起和取消挂起一个文件DLL
- 用C++中的一个变量定义一个常量
- 函数向量_指针有不同的原型,我可以构建一个吗
- 在c++中用vector填充一个简单的动态数组
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- 预处理器:插入结构名称中的前一个行号
- 我在c++代码中生成了一个运行时#3异常
- 维护/维持两个代码集的风险,一个用于 CPU,一个用于 GPU,需要执行非常相似的功能
- 仅一个功能的链接错误.在同一类和CPP文件中具有相似签名的其他函数工作正常
- 在 c++ 中将向量与一个或多个相似元素组合在一起
- 我刚开始使用特征矩阵代数库,目的是创建一个数据集的相似矩阵,建议
- 这看起来很相似,但与旧问题不同.给定一个大小为 n 的数组(允许重复的数字),找到缺少的 2 个数字
- RHEL 6.0两段相似的代码:一个能编译,一个不能
- OpenCv/ c++ -从一个大数据库的图片中轻松找到相似之处
- 在一个非常大的序列中找到相似的子序列
- 基于另一个向量的相似度对一个向量进行条件平均