Kezdőoldal » Számítástechnika » Programozás » Hogy törölhetek egy bizonyos...

Hogy törölhetek egy bizonyos vector elemet c++-ban?

Figyelt kérdés

Utánanéztem és hiába írom be a következőt:


VectorElements.erase(ElementIndex, ElementIndex+2);


Az erasemeghívásakor a következőt hibát kapom:

No mathcing funcition for call std::vector<std::basic_string<char>>::erase(int&,int)


Ezt sajnos nem tudom értelmezni. Stringeket tárol a vectorom amúgy. Hozzáadni hozzátudok, sőt azokat ki is tudom íratni, de itt gondban vagyok. Mit rontottam el?



2016. jún. 9. 20:14
1 2
 1/14 anonim ***** válasza:
100%
Ott rontottad el, hogy az erasenek csak iterátort lehet megadni paraméterül, int-et nem.
2016. jún. 9. 20:29
Hasznos számodra ez a válasz?
 2/14 anonim ***** válasza:
Ne vectort használj, hanem list-et. A list-ben bárhol törölhetsz.
2016. jún. 9. 20:37
Hasznos számodra ez a válasz?
 3/14 A kérdező kommentje:

Köszi megoldottam iterátorokkal. Most megpróbálom a list-et.


A list "fejlettebb" adatszerkezet, mint a vector amúgy?

Úgy értem, hogy a haladóbb programozók már list-et használnak?

2016. jún. 9. 20:46
 4/14 anonim ***** válasza:
100%

A vectorban is bárhonnan törölhet, csak iterátorral kell megcsinálnia a paraméterezést.


VectorElements.erase(ElementIndex, ElementIndex+2);

helyett:

VectorElements.erase(VectorElements.begin()+ElementIndex, VectorElements.begin()+ElementIndex+2);


A vectorElements.begin() a vektor első elemére mutató iterátor, ami a pointer-aritmetikához hasonlóan már eltolható a szükséges index-el.

2016. jún. 9. 20:47
Hasznos számodra ez a válasz?
 5/14 anonim ***** válasza:

Nem fejlettebb, hanem másabb. Nézd át ezeket az előadás diavetítéseket és képben leszel:

[link]

2016. jún. 9. 20:52
Hasznos számodra ez a válasz?
 6/14 anonim ***** válasza:
100%
A lista nem "fejlettebb", csak más. A lista, mint a neve is sugallja, listaszerkezetű, külsőleg sok olyan metódus érhető el hozzá, ami "kényelmesebbé" teheti a vectorral szemben, de a belső szerkezetük nagyban különbözik. A lista láncolt listával van megvalósítva, ily módon nem közvetlen elérésűek az elemei, míg a vector - akárcsak a tömb - elemei közvetlen elérésűek. A két adatszerkezetnek máshol vannak az előnyei és hátrányai.
2016. jún. 9. 20:53
Hasznos számodra ez a válasz?
 7/14 A kérdező kommentje:

Én egy menüt készítek éppen és azt íratom ki. A törlésre azért van szükség, hogy a kiválasztott elemet mát ne tudja még egyszer választani. Ilyenkor törli az adott elemet és újra kiírja a menüt.


Erre vectort vagy list-et célszerű használni?


Én úgy értelmezem, ahogy te írtad, a vector "közvetlen elérésű" elemkből áll. Szerintem itt jobb a vector.


Vagy rosszul látom?

2016. jún. 9. 20:58
 8/14 anonim ***** válasza:
Hát én menühöz még nem használtam tárolókat, mégis hogyan akarod kezelni azt a menüt?
2016. jún. 9. 21:12
Hasznos számodra ez a válasz?
 9/14 A kérdező kommentje:
A következő a lényeg: egy .txt fájlból feltöltöm a menüt. Majd kiíratom a menüt. A felhasználó választ egyet a menüből. A választott dolgot kitörli a menüből és megint kiírja a menüt.
2016. jún. 9. 21:27
 10/14 anonim ***** válasza:

txtből menü???

Wtf?

2016. jún. 9. 21:35
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!