Skopiowanie elementów deque do innego deque

0

Witam,

problem trywialny w jaki sposób mógłbym przy użyciu std::copy skopiować np. określoną liczbę elementów np. 5 jednego kontenera deque do drugiego.

std::deque<double> tmp_polyB(m_rankB+1);
std::copy (m_history_poly_B.begin(), 5, tmp_polyB.begin() );

Powyższy przykład oczywiście jest błędny

0

próbowałeś po prostu tak: m_history_poly_B = tmp_polyB; ?

ale jak już się uparłeś na copy to:

  1. #include <algorithm>
  2. http://www.cplusplus.com/reference/algorithm/copy/
    tutaj praktycznie na samej górze masz:
    template <class InputIterator, class OutputIterator>
    OutputIterator copy ( InputIterator first, InputIterator last, OutputIterator result );
    co oznacza:
    copy(skad.begin(),skad.begin()+ile, dokad.begin());
    skad.begin()+ile mozna zastąpić np. skad.end()
0

Copy nadpisuje elementy pod kolejnymi pozycjami w kontenerze docelowym, a to raczej nie jest coś co chcesz osiągnąć.
Możesz skorzystać z konstruktora przyjmującego iterator początku i końca a następnie przypisać nowy obiekt (http://cplusplus.com/reference/stl/deque/deque/) (trzeci z kolei),
bądź użyć funkcji insert (http://cplusplus.com/reference/stl/deque/insert/) (ostatnia wersja).

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