chcę powielać zawartość nośnika i chcesz, żeby być dołączone na końcu oryginalnego wektora tj v[i]=v[i+n] for i=0,2,...,n-1
Dobry sposób, aby dołączyć wektor do siebie
szukam dobry sposób, aby to zrobić, nie z pętlą. Widziałem std::vector::insert
, ale wersja iteracyjna zabrania iteratora na *this
(tzn. Zachowanie jest niezdefiniowane).
Próbowałem też std::copy
następująco (ale to spowodowało winy segmentacji):
copy(xx.begin(), xx.end(), xx.end());
możliwe duplikat [błędne wyniki podczas dołączania wektor do siebie używając kopii and back \ _inserter] (http://stackoverflow.com/questions/11511510/wrong-results-when-appending-vector-to-self-using-copy-and-back-inserter) –
@BenVoigt, Aby być uczciwym, kiedy zadałem to pytanie, spróbowałem i chciałem wiedzieć, dlaczego to nie zadziałało. Właściwie nie potrzebowałem eleganckiego rozwiązania roboczego, więc w komentarzach są tylko wzmianki o nim. – chris
Muszę się zastanowić, czy większość ludzi wdrożyłaby tę implementację za pierwszym razem, gdyby zakodowali ją pętlą. – MarkB