【问题标题】:Compare vectors and add missing elements比较向量并添加缺失的元素
【发布时间】:2015-05-20 07:27:31
【问题描述】:

我需要这样的函数:

vector a;matrix A(a.size(),vector(9));

vector b;matrix B(b.size(),vector(9));

....

vector n;matrix N(n.size(),vector(9));

for(all vectors and matrices given){

     if(vector[i] not in other vector){
         put missing element to vector at position i
         put zero vector to B at position i
     }
}

我想给你一个案例,让你更清楚一点:

a=[name,place]; A=[vector[names],vector[place]]
b=[name,religion]; B=[vector[names], vector[religion]]
c=[place,religion]; C=[vector[place],vector[religion]]

现在的目标是最终得到a=b=c=[name,place,religion]A~B~C=[vector[names],vector[place],vector[religion]]

A、B 和 C 中的向量仍然保存原始数据,以及在属性最初不存在的情况下为零向量。

在每个向量中,所有元素都彼此不同(所以没有vec=[1,1,2] 或类似的)

我对那个非常抽象的描述感到抱歉。我希望有人得到我需要的东西,否则就问:-)

已经感谢您的帮助!

【问题讨论】:

  • 如何处理模棱两可的情况?假设你有v1=[1 2 2]v2=[1 2 3] 你想要的输出是什么? [1 2 2 3][1 2 3][1 2 3 2]?
  • 幸运的是,我可以确定向量中的每个元素只出现一次
  • 你的问题不清楚。
  • 我希望我的补充有所帮助

标签: c++ matrix vector


【解决方案1】:

至少对于向量,您可以创建一个set,将所有向量中的所有项目插入到集合中,然后从集合中复制到所有向量中。那么你应该有来自所有向量的所有数据,没有重复。

【讨论】:

  • 感谢您的快速回答!我想我一直不清楚。问题不仅是所有向量中的所有元素,而且对于向量中不存在的每个元素,矩阵的相应行中的向量也为零..
猜你喜欢
  • 2020-08-08
  • 2022-09-23
  • 2017-08-28
  • 2023-04-04
  • 1970-01-01
  • 1970-01-01
  • 2020-12-25
  • 2017-10-03
  • 1970-01-01
相关资源
最近更新 更多