Kezdőoldal » Számítástechnika » Programozás » Ez micsoda? Ilyet még nem...

Ez micsoda? Ilyet még nem láttam. C++.

Figyelt kérdés

// swap arrays

#include <iostream>

#include <array>


int main ()

{

std::array<int,5> first = {10, 20, 30, 40, 50};

std::array<int,5> second = {11, 22, 33, 44, 55};


first.swap (second);


std::cout << "first:";

for (int& x : first) std::cout << ' ' << x;

std::cout << '\n';


std::cout << "second:";

for (int& x : second) std::cout << ' ' << x;

std::cout << '\n';


return 0;

}


Ezt a példát egy weboldalról másoltam be.

Mindent értek benne kivéve ezt:

for (int& x : second) ;

int &x létrehzunk egy intre egy hivatkozást.

Ez meg micsoda ':' ?

A second pedig egy tömb.

Szóval gondolom én hogy az intbe hivatkozás mindig a tömb első elemére fog hivatkozni.


Egyáltalán nem értem ezt.


2013. jan. 3. 15:16
 1/10 anonim ***** válasza:
nem minden esetben
2013. jan. 3. 15:25
Hasznos számodra ez a válasz?
 2/10 A kérdező kommentje:

Mindegy.

Magyarázzátok el hogy ha használom ezt a logikai operatort:

: akkor az mit eredményez mire van?


És a ? operatr mire van.

Megnéztem a vwikit de 3 szót írt róla.

2013. jan. 3. 15:27
 3/10 iostream ***** válasza:
A : nem logikai operátor. Amúgy ez: [link]
2013. jan. 3. 15:39
Hasznos számodra ez a válasz?
 4/10 A kérdező kommentje:

Én még mindig nem tudtam meg ebből.

Hogy mit csinál ez ':'.


Lehetne valaki olyan szíves és elmagyarázná mert nem értem.

2013. jan. 3. 16:05
 5/10 A kérdező kommentje:

Akkor a : operátpr azt eredményezi hogy egy std::array egy elemét kiszedi és beleteszi például egy intbe?


És ha másodszorra alkalmazom a : operatort valamire akkor már az első utánni elemet szedi ki belle.


Mert a leírásból amit linkeltél ezt vettem ki.


vector<int> vec;

vec.push_back( 10 );

vec.push_back( 20 );


for (int i : vec )

{

cout << i;

}


This code prints the contents of a vector called vec, with the variable i taking on the value of each element of the vector, in series, until the end of the vector is reached.

2013. jan. 3. 16:11
 6/10 anonim ***** válasza:

Ne kattogjál már annyit azon a kettősponton :))

Annyi van, hogy az x felveszi szépen sorban a second tömb minden elemének az értékét.


Általánosan: ez a ciklus-konstrukció egy konténer minden elemén végigiterál. Ez a kettőspontos írás a szintaktikája.


Olyan mintha foreach-et írnál C#-ban, vagy For Each-et Visual Basic-ben, csak itt kettősponttal oldották meg.

BTW JAVA-ban is pont ugyanígy, kettősponttal kell írni.

2013. jan. 3. 16:36
Hasznos számodra ez a válasz?
 7/10 anonim ***** válasza:

hát ezt még tanulni kell, főleg ha annyit lovagolsz azon a kettősponton.

Minden programozási nyelvnek megvannak a sajátosságai, itt a kettős pont lenne az.

Végig fog menni neked a tömb minden elemén.

2013. jan. 3. 17:31
Hasznos számodra ez a válasz?
 8/10 A kérdező kommentje:
Értem szóval azt jelenti a kettőspont,hogy végigmegyünk egy tömb minden elemét.
2013. jan. 3. 23:21
 9/10 A kérdező kommentje:
Hát ha ezt így lehet akkor az iterátor felesleges.
2013. jan. 3. 23:40
 10/10 iostream ***** válasza:
Nem felesleges, mert iterátorokkal működik :) No meg nem csak arra lehet szükség, hogy végigszaladj egy tömbön (vagy bármilyen kollekción), a standard algoritmusok még mindig intervallumokon dolgoznak.
2013. jan. 4. 14:01
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!