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

question-closed Problem ze zwracaniem wektora jako argumentu

Object Storage Arubacloud
–1 głos
228 wizyt
pytanie zadane 29 sierpnia 2017 w C i C++ przez Shiro Stary wyjadacz (10,300 p.)
zamknięte 30 sierpnia 2017 przez Shiro

Witam, 

Mam taką funkcję: 

vector < string > unMege(vector < string > data, string dataToUnMerge, char unMergeChar)
{
	string supVariable2, supVariable = dataToUnMerge;

	for (unsigned int i = 0; i < supVariable.length(); i++)
	{
		if (supVariable.length() - 1 == i || supVariable[i] == unMergeChar)
		{
			if (supVariable.length() - 1 == i)	supVariable2 += supVariable[i];
			data.push_back(supVariable2);
			supVariable2 = "";
		}
		else	supVariable2 += supVariable[i];
	}
	return data;
}

I takie jej użycie: 

vector < string > dataFromTheFile;
vector < vector < string > > dataFromTheFile2;
string supportVariable, supportVariable2;	

[...]

	for (unsigned int i = 0; i < dataFromTheFile.size(); i++)
		{
			supportVariable = dataFromTheFile[i];

			dataFromTheFile2[i] = unMege(dataFromTheFile2[i], supportVariable, '|');//HERE IS FINISHED AND HERE IS PROBLEM 

		}//for

Mam nadzieje że o niczym nie zapomniałem, gdy przychodzi czas na użycie tej funkcji program przywołuje błąd z biblioteki wektorów. Mam pewne obawy że moje działania na tablicach są nie prawidłowe dlatego jeżeli tak jest to prosiłbym o napisanie jak to powinienem zrobić. Ponadto chciałem zapytać jak to jest z użyciem tablicy jako argumentu, a jak jako tablicy o zasięgu globalnym / zaprzyjaźnionej funkcji (i jak zadeklarować takie zaprzyjaźnienie) 

Wszystkim pasjonatom dziękuje za ewentualną pomoc ;) Miłego wieczorka ;) 

komentarz zamknięcia: Brak linii: dataFromTheFile2.push_back(vector < string >());
komentarz 29 sierpnia 2017 przez unknown Nałogowiec (39,560 p.)

przywołuje błąd z biblioteki wektorów.

Jaki?  

komentarz 29 sierpnia 2017 przez Shiro Stary wyjadacz (10,300 p.)

vector:1740

			_DEBUG_ERROR("vector subscript out of range");

Details: TerminalShiro.exe has triggered a breakpoint. occurred

 

1 odpowiedź

0 głosów
odpowiedź 29 sierpnia 2017 przez adrian17 Ekspert (344,860 p.)
wybrane 30 sierpnia 2017 przez Shiro
 
Najlepsza

dataFromTheFile2[i] = (...)

Upewniłeś się, że `dataFromTheFile2` ma wystarczający rozmiar? Zgaduję, że nie.

BTW, ten kod się bardzo ciężko czyta :/

Edit: zupełnie nie rozumiem, po co ten argument `data` w `unMege`.

komentarz 30 sierpnia 2017 przez Shiro Stary wyjadacz (10,300 p.)
Teraz rozumiem, dzieki.

Szkoda że nie wiedziałem o takiej konstrukcji wcześniej chodź pewnie w tym przypadku nic by nie zmieniła. Zastosuje się do Twoich uwag, jeszcze raz dziękuje :)
komentarz 30 sierpnia 2017 przez Shiro Stary wyjadacz (10,300 p.)
Jeszcze tylko mam pytanie, dlaczego użyłeś w deklaracji funkcji '&line' co daje ten znak '&' ?
komentarz 30 sierpnia 2017 przez Shiro Stary wyjadacz (10,300 p.)

I jeszcze przy użyciu: 

for(char c : line) 

W jaki sposób sprawdzić czy jest to ostatni znak zmiennej line ?

komentarz 30 sierpnia 2017 przez adrian17 Ekspert (344,860 p.)

co daje ten znak '&' ?

Poczytaj o referencjach.

W jaki sposób sprawdzić czy jest to ostatni znak zmiennej line ?

W takiej pętli się nie da bezpośrednio. (natomiast zauważ, że poradziłem sobie bez tego)

komentarz 30 sierpnia 2017 przez Shiro Stary wyjadacz (10,300 p.)
Referencje, ciekawe chodź nie do końca rozumem muszę to jeszcze przetworzyć, ale mniej więcej wiem o co chodzi.

Co prawda poradziłeś sobie bez, ale jakby algorytm nie jest kompletny, ponieważ jest problem z ostatnim członem:
Ex. cos|tak|nie // bedzie problem z nie ;/

Ale dziekuje za odpowiedz, czytałem trochę o funkcji end() i możliwe że będę mógł jej użyć, na razie jeszcze jej nie rozgryzłem :D

Podobne pytania

0 głosów
2 odpowiedzi 735 wizyt
pytanie zadane 11 września 2015 w PHP przez Else Stary wyjadacz (12,260 p.)
0 głosów
2 odpowiedzi 88 wizyt
pytanie zadane 26 sierpnia 2019 w C i C++ przez ForeverFriendzone Dyskutant (7,520 p.)
+1 głos
3 odpowiedzi 1,127 wizyt
pytanie zadane 13 kwietnia 2021 w C i C++ przez Pawolo122 Początkujący (330 p.)

92,551 zapytań

141,399 odpowiedzi

319,531 komentarzy

61,937 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!

...