Avatar ·

Wie man zwei Vektoren (Vec) in Rust richtig kombiniert? Die besten Methoden zur Verkettung

Hallo zusammen! Ich habe gerade angefangen, Rust zu lernen, und bin auf die Aufgabe gestoßen, zwei Vektoren zu kombinieren. Angenommen, ich habe zwei Zahlenvektoren: `vec1` und `vec2`. Ich brauche einen dritten Vektor, der alle Elemente aus dem ersten und dann alle aus dem zweiten enthält. In Python würde ich einfach `vec1 + vec2` schreiben, aber in Rust funktioniert das nicht. Ich habe ein paar Methoden ausprobiert, bin mir aber nicht sicher, welche richtig und effizient ist. Hier ist mein Code: ```rust let mut vec1 = vec![1, 2, 3]; let vec2 = vec![4, 5, 6]; // Versuch 1: einfache Addition (kompiliert nicht) // let result = vec1 + vec2; // Versuch 2: mit extend vec1.extend(vec2); println!("{:?}", vec1); // Ergebnis [1, 2, 3, 4, 5, 6], aber vec1 wurde geändert // Versuch 3: mit einer Schleife let mut result = Vec::new(); for item in &vec1 { result.push(*item); } for item in &vec2 { result.push(*item); } ``` Probleme: 1. `extend` übernimmt die Ownership und ändert den ursprünglichen Vektor, was nicht immer praktisch ist. 2. Die Schleife sieht umständlich aus und ist wahrscheinlich nicht optimal.