Kezdőoldal » Számítástechnika » Programozás » Ez egy függvény ami 2 paraméte...

Ez egy függvény ami 2 paramétert ad át minek? És hogy működik?

Figyelt kérdés

short myArray[5] = {10,60,80,11,4};

std::short(&myArray[0],&myArray[5]); //Ez mi?


2012. máj. 3. 14:05
 1/10 A kérdező kommentje:

//És mi a hiba?

int main()

{

ushort myArray[10] = {10,8,25,4,69,63,11,53,88,29};

for(ushort i = 0;i < 10;i++)

cout <<"myArray["<< i <<"]: "<< myArray[i] << endl;

cout <<"Call std::short(&myArray[0],&myArray[10] \n";

std::short(&myArray[0],&myArray[10]);

for(ushort i = 0;i < 10;i++)

cout <<"myArray["<< i <<"]: "<< myArray[i] << endl;


return EXIT_SUCCESS;

}


main.cc:130:9: error: expected unqualified-id before 'short'

main.cc:130:9: error: expected ';' before 'short'

2012. máj. 3. 14:15
 2/10 A kérdező kommentje:

Már működik.

De az,hogy működik hol tudom megnézni?

2012. máj. 3. 14:31
 3/10 anonim ***** válasza:

Itt : [link]

Elég bonyolult. Általánosan van megírva nem csak konkrét típusra működik. Ennek a konkrét függvénynek rengeteg különböző polimorf példánya van template-ekkel "fűszerezve".

2012. máj. 3. 15:28
Hasznos számodra ez a válasz?
 4/10 iostream ***** válasza:

Gondolom rájöttél, hogy a sort nem elírás volt, hanem tényleg sort. Az ilyenek elkerüléséhez először angolul kéne megtanulni, a sort a rendezést jelenti.


Hogy hol tudod megnézni, hogy működik?

Egyfelől látatlanban megmondom neked, hogy a quicksort nevű algoritmust implementálja, másfelől ha a konkrét kódra vagy kíváncsi, keresd meg az algorithm fejállományt valahol a C++ fordítód bugyraiban, és ott keresd meg a sort függvényt. Lehet, hogy nem konkrétan abban a fájlban lesz, hanem #include-dal behúzza valahonnan máshonnan, akkor kövesd a láncot. Az a lényeg, hogy ez egy template függvény, tehát a kódnak elérhetőnek kell lennie valahol a fordítód által biztosított könyvtárban.

2012. máj. 3. 15:31
Hasznos számodra ez a válasz?
 5/10 anonim ***** válasza:
Pontosan megkerestem az adott oldalon: [link]
2012. máj. 3. 16:29
Hasznos számodra ez a válasz?
 6/10 A kérdező kommentje:

Semmi rendezést nem csinál az a függvény hát nem értem ennek a működését.

Ugyanúgy rakja sorrendeb mint a buborékos módszer?

2012. máj. 3. 16:56
 7/10 iostream ***** válasza:
Nem, teljesen máshogy, ugyanis a buborékos nagyon lassú. A GNU implementáció meghív két függvényt, azokat is keresd meg.
2012. máj. 3. 17:29
Hasznos számodra ez a válasz?
 8/10 anonim ***** válasza:

Azért nem csak 2 másik függvényt hív meg. Több függvényt hív meg melyek újabb függvényeket hívnak meg.

A buborékos rendezésnél több 100x vagy több 1000x gyorsabban lefut, az input méretétől függően.

Megnéztem és még javítva van azzal a futási idő, hogy rendezés során véletlen számokat generál ezzel gyakorlatilag véletlen döntéseket hoz és a szerint rendez tovább. Ennek játékelméletbeli számelméleti háttere van hogy miért. Nem az volt a cél hogy könnyen érthető legyen hanem hogy hatékony legyen és ne csak pl. csak int tömbre működjön vagyis általánosan típusfüggetlenül van megírva. Általános rendező algoritmust nem lehet ennél (lényegében) gyorsabbat írni. Kivéve ha valamilyen speciális tulajdonságát kihasználjuk a rendezendő elemeknek, de az nem általános rendező algoritmus.

Akik írták nekik sem kell pontosan tudni hogy hogy működik. Szét van szedve sok kis függvényre ezeket külön külön más más is megírta és nem 1 nap munkája... stb.

Ezért írtam hogy nem egyszerű. A lényeg hogy használni egyszerű.

2012. máj. 3. 18:58
Hasznos számodra ez a válasz?
 9/10 iostream ***** válasza:

Lényegében két függvényt hív meg, ezek végzik a tényleges rendezést:


std::__introsort_loop és std::__final_insertion_sort. Meghívja még az std::__lg-t is, ez lényegében kettes alapú logaritmust számol. Persze a fenti kettő hívhat további függvényeket, de a sort maga csak ezeket hívja (meg persze implicit hivogatja a másoló konstruktorokat meg destruktort meg mindenféle ilyesmit).

2012. máj. 4. 13:52
Hasznos számodra ez a válasz?
 10/10 iostream ***** válasza:
Jah, és ez csak a GNU implementáció. Könnyen lehet, hogy az MS tök máshogy csinálta (na jó, az alapelv ugyanez lesz, de megközelíthetik más szögből is). A Borland meg megint máshogy. Igazából az algoritmus sincs megkötve, csak az, hogy O(n * logn)-es futásidejűnek kell lennie. Ettől még akár az is lehetne, hogy a sort simán aliasa a stable_sort-nak, annak is ilyen a futásideje.
2012. máj. 4. 13:54
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, 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!