• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wektory i referencje

Object Storage Arubacloud
0 głosów
485 wizyt
pytanie zadane 28 kwietnia 2020 w C i C++ przez Adrian Maj Nowicjusz (160 p.)
#include <iostream>
#include<vector>
std::vector<int> intersection (std::vector<int> vector1, std::vector<int> vector2){
std::vector<int> tablica;
int h=0;
	for(int i=0; i<vector1.size();i++){
		for(int j=0; j<vector2.size();j++){
			if(vector1[i]==vector2[j]){
				tablica[h]=vector1[i];
				h++;
			}
		}
	}	
	
	
}

int main () {
for (int element: intersection(std::vector<int> {-7, 2, 3, 7, 15, 18, 23}, std::vector<int> {-8, 3, 5, 8, 15, 23, 30})) {
std::cout << element << " "; }
std::cout << std::endl; }

3.2.27 Intersection: Część wspólna zbiorów - bitcoin Napisz funkcję intersection, któa przyjmuje stałe referencje dwóch uporządkowanych rosnąco wektorów liczb całkowitych i zwraca uporządkowany rosnąco wektor liczb zawartych w obu tych wektorach jednocześnie. Funkcja powinna być przystosowana do użycia w przykładowym programie poniżej. Funkcja korzysta tylko z pliku nagłówkowego vector.

Przykładowy program

int main () {
for (int element: intersection(std::vector<int> {-7, 2, 3, 7, 15, 18, 23}, std::vector<int> {-8, 3, 5, 8, 15, 23, 30})) {
std::cout << element << " "; }
std::cout << std::endl; }

Wykonanie Out: 3 15 23

 

Wie ktoś co robię nie tak?

komentarz 28 kwietnia 2020 przez adrian17 Ekspert (345,160 p.)

Po pierwsze, rzuć okiem na ostrzeżenia kompilatora:

<source>:16:1: warning: no return statement in function returning non-void [-Wreturn-type]
   16 | }
      | ^

 

1 odpowiedź

–1 głos
odpowiedź 28 kwietnia 2020 przez tangarr Mędrzec (154,860 p.)

Zupełnie nie wiem jaka logika stała za wymyśleniem twojej funkcji.

Dla uproszczenia pomyśl sobie że masz dwa stosy. Widzisz tylko górne elementy na tych stosach.

Twój algorytm musi zdejmować mniejszy element i dokładać go do wektora wyjściowego.

Pseudo algorytm:

funkcja scalanie(stos1, stos2) {
    wynik = []
    dopóki (stos1.ma_elementy() i stos2.ma_elementy()) {
        jeżeli (stos1.pierwszy_element < stos2.pierwszy_element) {
            element = stos1.zdejmij_element
            wynik.dodaj(element)
        }
        w przeciwnym wypadku 
            element = stos2.zdejmij_element
            wynik.dodaj(element)
        }
    }
    jeżeli (stos1.ma_elementy)
        wynik.dodaj(wszystkie_elementy(stos1))
    jeżeli (stos2.ma_elementy)
        wynik.dodaj(wszystkie_elementy(stos2))
    zwróć wynik
}

Gdy zrozumiesz ten algorytm pomyśl jak wykrywać na które elementy wektorów powinieneś patrzeć (użyj indeksy lub iteratora)

Podobne pytania

0 głosów
1 odpowiedź 3,151 wizyt
pytanie zadane 12 maja 2017 w Python przez ThePatrykOOO Dyskutant (8,400 p.)
+1 głos
2 odpowiedzi 103 wizyt
pytanie zadane 23 sierpnia 2023 w C i C++ przez Janchess Początkujący (480 p.)
0 głosów
2 odpowiedzi 243 wizyt
pytanie zadane 18 kwietnia 2018 w C i C++ przez Perseusz Bywalec (2,190 p.)

92,588 zapytań

141,439 odpowiedzi

319,688 komentarzy

61,974 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...