Kopiowanie pomiędzy deque i vector

0

Witam,

chce skopiować zawartość kontenera deque do vectora najlepiej w odwrotnej kolejności:

 
deque<double> tmp;
	
	for(int i = 0 ; i<=5 ; i++)
	{
		tmp.push_back(static_cast<double>(i));
	}
	
	vector<double> out;

	std::copy_backward(tmp.begin(), tmp.end(), out.begin());

Jak to zrobić wykorzystując algorytm kopiowania ?

0

Możesz do konstruktora dać iteratory rbegin i rend, jak koniecznie chcesz skopiować do istniejącego kontenera, to musi on mieć odpowiedni rozmiar (copy_backward automatycznie nie powiększa konteneru). Do std::copy (i copy::backward) też musisz dać odwrotne iteratory, żeby działało, reverse_copy robi pewnie to, czego byś chciał po copy_backward.

0

copy_backward kopiuje zaczynając od końca, ale to nie znaczy że odwraca kolejność elementów — a jedynie to, że kopiuje od końca.

kopiowanie od końca polega na czymś takim:

for (int i=N-1; i>=0; i--)
  tab2[i] = tab1[i];
2
std::copy(m_outputs.rbegin(), m_outputs.rend(), std::inserter(out, out.begin()));

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