Chyba nie rozumiem pytania.
Mam Tabelę pierwotną z wylosowanymi danymi.
Mam Tablicę struktur z tymi samymi Danymi z wybraną posortowaną kolumną- np imię
Szczerze mówiąc inaczej bym to zrobił. Zamiast duplikować dane, stwórz indeksy do nic, tak jak to ma miejsce w prawdziwych bazach danych. Wtedy sortowanie odbywa się na indeksach, a oryginalna tablica z danymi jest nietknięta. Indeksy możesz zrealizować za pomącą zwykłej tablicy
unsigned[] lub, jeśli baza ma być edytowana, drzewa binarnego (std::
set/
multiset). W przypadku tablicy każda wartość zawiera indeks do odpowiedniego elementu w oryginalnej tablicy z danymi, wtedy dostęp do oryginalnych danych wygląda tak:
unsigned index_by_name[ tyle_samo_co_w_dane ];
...
cout << dane[ index_by_name[x] ].imie << '\n';