Kezdőoldal » Számítástechnika » Programozás » Ez a valószínűleg c++ parancsn...

Ez a valószínűleg c++ parancsnak mi a szerepe?

Figyelt kérdés

std::vector<KeyPoint> keypoints_1, keypoints_2;

detector.detect( img_1, keypoints_1 );

detector.detect( img_2, keypoints_2 );


Sajnos még sosem programoztam c++-ban, csak sima c-ben és pascalban.

Mire való a dupla kettőspont? Egy vektort hoz létre? A vektor olyasmi, mint egy mátrix?

detector.detect Ilyen c-ben csak akkor van, ha a detector egy valamilyen struktúra lenne...de nem az.


Aki csak el akar küldeni a google-re, az inkább ne válaszoljon. Lehet, hogy nyilvánvaló dolgok, azok számára akik már tudják, de én nem.



2012. júl. 12. 21:04
 1/3 anonim ***** válasza:

std::vector<KeyPoint> keypoints_1, keypoints_2;

Ezzel létrehozol kettő vektort(keypoints_1, keypoints_2). Az std::vector azt jelenti,hogy a vektor az std névtérhez tartozik. Ha ez nem lenne,akkor a fordító nem tudná,hogy mi az a vector. A vector-t úgy képzeld el mint egy tömböt. <KeyPoint> úgynevezett sablonparaméter, ami azt jelenti hogy a vektorban KeyPoint típusú értékek vannak.


detector.detect( img_1, keypoints_1 );

A detector egy objektum(referencia). Egy osztálynak(ilyen nincs c-ben) egy példánya, amelynek ponttal elválasztva a detect eljárását hívja meg a zárójelen belüli paraméterekkel.

2012. júl. 12. 21:38
Hasznos számodra ez a válasz?
 2/3 A kérdező kommentje:

Asszem kezdem érteni.

Csak a pontosítás kedvéért:

std:: Ez csak a vektor definiálásához kell? Máskor nem?

A vektor olyan, mint egy egydimenziós tömb, amely pl KeyPoint struktúrájú elemeket tartalmaz (ha c-ben csinálnám)?

azaz ha c-ben írnám:


typedef struct

{

int változó1;

char változó2;


}KeyPoint


int main()

{

KeyPoint vektor[];



return 0;

}


Köszi a türelmet, nameg a választ.

2012. júl. 12. 22:22
 3/3 iostream ***** válasza:

Az std::X azt jelöli, hogy az X nevet az std névtérben keresi a fordító. Ez bárminél szükséges, ami az std névtérben van, mint például a standard könyvtár MINDEN eleme, de te is hozzáadhatsz bármit:


namespace std

{

class A {};

}


Ekkor std::A jelöli az A osztályt.


A névterek elsősorban a névütközések megakadályozására vannak, sokkal jobb így, mintha minden változó és típus nevébe beleraknád a logikai egységet, amihez tartozik (vagy elfelejtenéd belerakni, és akkor keverednének a nevek).


És igen, a vector úgy működik, mint egy egydimenziós tömb, csak nem fix a mérete, futásidőben változik.

2012. júl. 13. 08:30
Hasznos számodra ez a válasz?

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!