Hirdetés
- Xiaomi 15T - reakció nélkül nincs egyensúly
- Android alkalmazások - szoftver kibeszélő topik
- Bemutatkozott a Poco X7 és X7 Pro
- Samsung Galaxy S23 Ultra - non plus ultra
- Poco F3 - a mindenes, de nem mindenkinek
- Apple iPhone 16 - ígéretek földje
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Milyen okostelefont vegyek?
- Igazi csúcskészülék lett a Poco F7 Ultra
- Samsung Galaxy S24 - nos, Exynos
Új hozzászólás Aktív témák
-
Jester01
veterán
Ha megoldható, akkor a tömböt add át, és a függvényen belül legyen a .adatx. Ez gondolom menne, tehát valamiért nem megvalósítható.
Alternatívaként csinálhatsz accessor függvényt, varázsolhatsz offsetof segítségével avagy ha esetleg véletlen c++ és nem c akkor member pointerrel.
#include <iostream>
using namespace std;
struct Foo
{
int x;
int y;
};
int sum0_x(Foo* array, int count)
{
int r = 0;
for(int i = 0; i < count; i += 1)
{
r += array[i].x;
}
return r;
}
int sum0_y(Foo* array, int count)
{
int r = 0;
for(int i = 0; i < count; i += 1)
{
r += array[i].y;
}
return r;
}
int sum1(Foo* array, int count, int (*accessor)(Foo*))
{
int r = 0;
for(int i = 0; i < count; i += 1)
{
r += accessor(array + i);
}
return r;
}
int sum2(Foo* array, int count, int member)
{
int r = 0;
for(int i = 0; i < count; i += 1)
{
r += *(int*)((char*)(array + i) + member);
}
return r;
}
int sum3(Foo* array, int count, int (Foo::*member))
{
int r = 0;
for(int i = 0; i < count; i += 1)
{
r += array[i].*member;
}
return r;
}
int accessor_x(Foo* foo)
{
return foo->x;
}
int accessor_y(Foo* foo)
{
return foo->y;
}
int main()
{
Foo foos[2];
foos[0].x = 1;
foos[0].y = 2;
foos[1].x = 3;
foos[1].y = 4;
cout << "sum0(x) = " << sum0_x(foos, 2) << endl;
cout << "sum0(y) = " << sum0_y(foos, 2) << endl;
cout << "sum1(x) = " << sum1(foos, 2, accessor_x) << endl;
cout << "sum1(y) = " << sum1(foos, 2, accessor_y) << endl;
cout << "sum2(x) = " << sum2(foos, 2, offsetof(Foo, x)) << endl;
cout << "sum2(y) = " << sum2(foos, 2, offsetof(Foo, y)) << endl;
cout << "sum3(x) = " << sum3(foos, 2, &Foo::x) << endl;
cout << "sum3(y) = " << sum3(foos, 2, &Foo::y) << endl;
return 0;
}
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Battlefield 6
- Vigneau interaktív lokálblogja
- PlayStation 3
- Xiaomi 15T - reakció nélkül nincs egyensúly
- A fociról könnyedén, egy baráti társaságban
- Mennyibe fog kerülni a Steam Machine?
- E-roller topik
- Kodi és kiegészítői magyar nyelvű online tartalmakhoz (Linux, Windows)
- Mesterséges intelligencia topik
- Gyúrósok ide!
- További aktív témák...
- PowerColor RX 7900 XTX RED DEVIL 24G videokártya garanciával
- Dobozos Új Lenovo ThinkBook 16 G7 Szépséges Laptop 16" -45% Intel Ultra 7 165U 12 Mag 16/512 FHD+
- LG 55QNED80T3A 2024 - 4K Ultra HD, QNED okos TV 23 hó garanciával.
- Samsung 27" 2K 2560x1440 monitor Pivot is, állítható magasság S27A850D PLS panel, picit gyenge talp
- szinte új DELL C2422HE full HD 1920x1080 IPS monitor- rejtett Webkamera - nagy hangszóró - USB-C
- Apple iPhone 15 Pro 128GB, Kártyafüggetlen, 1 Év Garanciával
- EREDETI NINTENDO Pokemon Go Plus autocatcher dobozban eladó
- iPhone 13 Pro Max emelt kapacitású 4790mAh diagnosztizálható akkumulátor, +ajándék ragasztó
- Xiaomi Mi 10T Pro 256GB, Kártyafüggetlen, 1 Év Garanciával
- LG 27GS60QX-B - 27" Ívelt VA - 2560x1440 2K QHD - 180Hz 1ms - AMD FreeSync Premium
Állásajánlatok
Cég: ATW Internet Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest


