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::insert


Zasada działania

Metoda insert() wstawia elementy z jednego wektora lub tablicy w dowolne miejsce do drugiego wektora, przesuwając elementy stojące za nim w prawo i rozszerzając odpowiednio wielkość wektora. Wstawienie to jest wykonane w czasie liniowym w stosunku do elementów, które musi przesunąć. Funkcja ta może także wstawiać pojedynczą wartość na podobnej zasadzie jak funkcja emplace(element). W przypadku, gdy wstawiana jest zawartość całego wektora lub tablicy, należy wywołać tę metodę z trzema argumentami:

nazwa_wektora.insert([wskaźnik na element, przed który wstawiać będziemy zawartość obiektu], [wskaźnik na początkowy element w wektorze lub tablicy], [wskaźnik na końcowy element w wektorze lub tablicy];

W przypadku wstawienia pojedynczego elementu należy podać dwa argumenty: wskaźnik na element, przed który wstawiać będziemy element oraz wartość tego elementu.

Przykład 1

Zadanie. Wstaw do wektora pierwszego liczby całkowite: 1 2 3 4 5, następnie wstaw liczby 6 7 8 9 do drugiego wektora. Zawartość drugiego wektora wstaw między wartością 1 i 2. Następnie wstaw liczbę 100 na początek i koniec wektora pierwszego. Wypisz jego zawartość po wykonaniu wszystkich czynności.

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

int main()
{
	//stworzenie wektorów i nadanie im wartości początkowych
	vector <int> tab1 = {1, 2, 3, 4, 5}, tab2 = {6, 7, 8, 9};
	
	//wstawienie zawartości wektora drugiego do wektora 1 między liczby 1 i 2
	tab1.insert(tab1.begin()+1, tab2.begin(), tab2.end());
	
	//wstawienie na początek liczbę 100
	tab1.insert(tab1.begin(), 100);
	//wstwienie na koniec liczbę 100
	tab1.insert(tab1.end(), 100);
	
	//wypisanie zawartości wektora
	for(int i=0; i<tab1.size(); i++)
		cout<<tab1[i]<<' ';
	
	return 0;
}
Wyjście
100 1 6 7 8 9 2 3 4 5 100 

Przykład 2

Zadanie. Wstaw do wektora pierwszego liczby całkowite: 1 2 3 4 5, następnie wstaw liczby 6 7 8 9 do zwykłej tablicy. Wypisz zawartość wektora po wykonaniu wszystkich czynności.

Rozwiązanie
//algorytm.edu.pl
#include<iostream>
#include<vector>
using namespace std;
 
int main()
{
	//stworzenie wektora i nadanie im wartości początkowych
	vector <int> tab1 = {1, 2, 3, 4, 5}; 
 
	//inicjacja tablicy liczb całkowitych
	int tab2[4] = {6, 7, 8, 9};
 
	//wstawienie zawartości tablicy do wektora między liczby 1 i 2
	tab1.insert(tab1.begin()+1, tab2, tab2+4);
 
	//wypisanie zawartości wektora
	for(int i=0; i<tab1.size(); i++)
		cout<<tab1[i]<<' ';
 
	return 0;
}
Wyjście
1 6 7 8 9 2 3 4 5