Łączenie dwóch list bez sortowania

Kofcio
2014-06-26 16:31
Kofcio
0

Cześć, mam pytanie czy da się połączyć dwie listy obiektów bez sortowania w C++? Najlepiej, by doczepiony został oryginał drugiej listy (bez kopiowania obiektów).
Wiem, że istnieje coś takiego jak merge, ale to wymusza sortowanie obiektów a tego robić nie chcę.
Chodzi o to, że mam kilka dość długich list własnych obiektów i chcę je połączyć w jedną a zależy mi na optymalnym rozwiązaniu więc fajnie, jakby one się tylko "doczepiły" do siebie ;-).
Z góry dzięki za pomoc.

Pozostało 580 znaków

2014-06-26 16:36

Rejestracja: 7 lat temu

Ostatnio: 1 rok temu

2014-06-26 16:37

Rejestracja: 7 lat temu

Ostatnio: 2 tygodnie temu

1

O jaka konkretnie liste chodzi?

Bo jesli masz jakas wlasna immutable struktura, to tak, da sie z doczepianiem. Jesli nie, n-1 list musisz skopiowac.

Pozostało 580 znaków

2014-06-26 16:40

Rejestracja: 6 lat temu

Ostatnio: 6 dni temu

0
#include <iostream>
#include <list>
using namespace std;

template<typename T>
list<T> operator+(const list<T> &a, const list<T> &b){
    list<T> result = a;
    for(const auto &item : b)
        result.push_back(item);
    return result;
}

int main() {
    list<int> a = { 1, 4, 6 }, b = { 2, 3, 5 };
    for(auto item : a + b)
        cout << item << endl;
    return 0;
}

out:

1
4
6
2
3
5
edytowany 1x, ostatnio: spartanPAGE, 2014-06-26 16:42

Pozostało 580 znaków

Kofcio
2014-06-26 16:52
Kofcio
0

Dzięki wielkie - szczególnie dla @Lord Darkstorm Przeoczyłem funkcję splice, która robi to o co mi chodziło ;-).
pozdrawiam

edytowany 1x, ostatnio: furious programming, 2016-12-13 18:26
Przy wieloczłonowych nickach musisz je obejmować klamrami, np. @{Lord Darkstorm}, bo wyślesz powiadomienie do kogoś innego :P - furious programming 2014-06-26 17:17
Widzę, że mój nick utrudnia życie ;p. - Lucas Darkstorm 2014-06-26 17:20
Z moim nie jest inaczej ;) - furious programming 2014-06-26 17:21
Witaj w klubie ;p. - Lucas Darkstorm 2014-06-26 17:22

Pozostało 580 znaków

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0