Gegeben ein Paar Vektoren von Strukturen mit 2 Feldern x und y (wo kein Duplikat x in jedem Vektor gefunden wird), wie summiere ich jeden Wert Y für jedes passende Paar von X (oder verwende einfach Y, wenn kein passendes X vorhanden ist.) Gibt es einen einfachen Weg, dies zu tun? Ich habe versucht, das Sortieren, und es scheint, als gäbe es einen Weg geben muss dies effizient zu tun, ohne mit std :: mapC++/c Struct Array paarweise Summe
Beispiel:
v1 = [{x = 1, y = 2}, {x = 1000 , y = 3}, {x = 3, y = 2}]
v2 = [{x = 0, y = 0}, {x = 1, y = 1}, {x = 3, y = -3}]
PairWiseSum (v1, v2) = [{x = 0, y = 0}, {x = 1, y = 3}, {x = 3, y = -2}, {x = 1000, y = 3}]
struct mystruct{
mystruct(int x, double y) {
X= x;
Y= y;
}
int X;
double Y;
bool operator < (const mystruct& other) const
{
return (x < other.x);
}
};
std::vector<mystruct> PairWiseSum(std::vector<mystruct> s1,std::vector<mystruct> s2)
{
std::vector<mystruct> sumVector;
sort(s1.begin(), s1.end());
sort(s2.begin(), s2.end());
...
return sumVector;
}
Versuchen Sie, besser zu erklären, ich denke, die Leute verschwenden ihre Zeit zu verstehen, was Sie wollen. – Elyasin