Kezdőoldal » Számítástechnika » Programozás » Egy javascriptes vahy php-s...

Egy javascriptes vahy php-s változónak mi a megfelelője c++-ban? std::any vagy esetleg std::variant?

Figyelt kérdés

2021. febr. 19. 11:09
 1/7 anonim ***** válasza:
93%
Nincs egy az egyben megfelelője.
2021. febr. 19. 11:14
Hasznos számodra ez a válasz?
 2/7 anonim ***** válasza:
0%

Ne keverjük a nyelvek közötti értékeket. De mindnek vagy egy fajta hasonlata. Alábbiakban látod, hogy pl.: C++ban egy long a Java int-el felel meg, PHP-ban meg "belefér" a tartományba.


C/C++-ban egy int 16 bites történet:

=> [link]


Java-ban egy int 32 bites történet:

=> [link]


PHP-ban rendszer függvényében van korlát.

=> [link]

=> (PHP_INT_MAX) 64bites rendszerben 64bites lesz a MAX-a. "The largest integer supported in this build of PHP. Usually int(2147483647) in 32 bit systems and int(9223372036854775807) in 64 bit systems. Available since PHP 5.0.5"

2021. febr. 19. 12:40
Hasznos számodra ez a válasz?
 3/7 anonim ***** válasza:
48%
2: húha, nagy a baj..
2021. febr. 19. 19:47
Hasznos számodra ez a válasz?
 4/7 anonim ***** válasza:
#2 Not quite. C/C++ nyelven minimum méretek vannak kikötve a szabványban, ettől lehet nagyobb az architektúra függvényében (vagy kisebb, ha a fordítóprogram ignorálja a szabványt)
2021. febr. 19. 22:13
Hasznos számodra ez a válasz?
 5/7 anonim ***** válasza:

A PHP és a JavaScript dinamikusan tipizált nyelvek, a C++ pedig statikusan. Dinamikus nyelvekben nem kötelező foglalkoznod azzal, hogy a változóid milyen típusúak, ezt a rendszer megpróbálja automatikusan rendezgetni neked, és legfeljebb futási idejű hibát kapsz, ha valamit nagyon elrontasz. Statikus nyelvekben a változóknak előre megadott fix típusa van, és fordítási idejű hibát kapsz, ha valami nem kompatibilis egymással.


Ha arra gondolsz, hogy hogyan lehetne a C++t úgy használni, mintha dinamikus lenne, akkor a válasz az, hogy nem lehet, és nem jó nyelvet választottál, ha erre szükséged van. Ha kevésbé akarok szigorú választ adni akkor igen, az std::any-vel meg az std::variant-tal lehet úgy kódot írni, ami dinamikus tipizáláshoz távolról hasonlít, de ha arra számítasz, hogy ezekkel úgy fog működni, mint a PHP, akkor csak csalódni és frusztrálódni fogsz. Ezeket amúgyis csak olyan esetekben érdemes használni, amikor erre tényleg szükség van, ami tapasztalatom szerint egészen ritka. Ha azon kapod magad, hogy mindenhova std::any-ket akarsz írni, akkor rossz szemléletmóddal próbálsz C++ kódot írni.

2021. febr. 20. 12:47
Hasznos számodra ez a válasz?
 6/7 A kérdező kommentje:
Nem, nyilván nem arra gondoltam, hogy lusta vagyok típusokat használni, hanem csak érdekel, hogy a háttérben hogyan épülnek fel a nyelvek. Például ha jól tudom, akkor a php tömbje az c++-ban egy std::map. Na ez kicsit ehhez hasonló téma.
2021. febr. 20. 21:30
 7/7 anonim ***** válasza:
Ez sem teljesen igaz. Igaz ugyan, hogy a PHP-s array egy asszociatív tömb, ami miatt felhasználói szemszögből jobban hasonlít C++ban az std::map-re, mint a C-stílusú tömbökre, de egy fontos különbség, hogy a PHP-s array implementációja valójában egy hash tábla, és az elemek a beszúrás sorrendjében lesznek benne, az std::map viszont egy önkiegyensúlyozó bináris keresőfa, amiből az elemek egy tetszőleges komparátor által meghatározott sorrendben kereshetőek ki. A C++ standardban nincs sorrendet megtartó hash tábla-alapú konténer, így nincs 1-1 megfelelője a PHP arraynek. Az std::unordered_map hash tábla-alapú, de nem sorrendezett.
2021. febr. 20. 22:07
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!