我的目标是找出两个向量中存在复数的次数。
wr_den : vector with real part
wi_den : vector with imaginary part
ordem_den[0] : vectors number of elements (in this case is 3)
示例:
wr_den[0] = 1 wi_den[0] = 1
wr_den[1] = 1 wi_den[1] = 1
wr_den[2] = 1 wi_den[2] = 0
结果:
index 0: 2
index 1: 2
index 2: 1
我的代码
for (it = 0; it < ordem_den[0]; it++)
{
times = 0;
for(contador = 0; contador < ordem_den[0]; contador++)
{
p = wr_den[it];
x = wr_den[contador];
y = wi_den[it];
t = wi_den[contador];
if ((p == x) && (t == y))
{
times++;
}
}
}
答案 0 :(得分:0)
std::multiset 可能就是这里的事情,假设感知的问题是当前代码的O(n ^ 2)时间。
首先迭代索引位置,将这些数字放入集合中。然后再次迭代,现在检查每个给定索引位置的每个数字的出现次数。
您没有指定使用的数字类型。请注意,非整数浮点值可能无法比较为相等,即使它们在输出上看起来相等。这可能是也可能不是问题。