Kurs maturalny z języka angielskiego!
kurs-maturalny-jezyk-angielski

PROGRAMOWANIE I ALGORYTMY

Zajęcia maturalne z informatyki
Olimpiada Informatyczna Juniorów
    Prowadzący: Marcin Kasprowicz
  • właściciel serwisu algorytm.edu.pl
  • wrzesień 2024 — start zajęć
  • czytaj więcej

vector::empace


Zasada działania

Metoda emplace() wstawia nowy element w dowolne miejsce z wektorze, przesuwając elementy stojące za nim w prawo, rozszerzając odpowiednio wielkość wektora. Robi to w czasie liniowym w stosunku do elementów, które musi przesunąć. Do wstawienia nowych danych wykorzystuje iterator, który należy ustawić na pozycję, przed którą będą wstawione nowe wartości.

Przykład

Zadanie. Wstaw do wektora liczby całkowite: 1 2 3 4 5, następnie wstaw liczby 6 7 8 9 między wartością 1 i 2. Wypisz zawartość wektora po wykonaniu powyższych czynności.

Rozwiązanie
//algorytm.edu.pl
#include<iostream>
#include<vector>
using namespace std;

int main()
{
	vector <int> liczby;
	vector <int>::iterator it;
	
	//wstaw kolejno liczby: 1, 2, 3, 4 do wektora o nazwie liczby
	liczby.push_back(1);
	liczby.push_back(2);
	liczby.push_back(3);
	liczby.push_back(4);
	
	//ustaw iterator na drugi element wektora
	it = liczby.begin() + 1;
	//wstaw przed drugim elementem liczbę 5
	liczby.emplace (it, 5);
	it = liczby.begin() + 2;
	liczby.emplace (it, 6);
	it = liczby.begin() + 3;
	liczby.emplace (it, 7);
	
	for(int i=0; i<liczby.size(); i++)
		cout<<liczby[i]<<' ';
	
	return 0;
}