В школе меня учили использовать базу данных с целочисленными идентификаторами, и я хочу знать, является ли это также хорошим способом сделать это в C / C ++.Я делаю игру, используя Ogre3D, поэтому я хотел бы, чтобы мой игровой код использовал как можно меньше циклов.
Это не точный код (я использую векторы и речь идет о персонажах и способностяхи так далее), но мне любопытно знать, не вызовет ли узкое место строка, где я получаю доступ к весу, поскольку я делаю несколько подстрочных массивов.
struct item
{
float weight;
int mask;
item(): mask(0) {}
}
items[2000];
struct shipment
{
int item_ids[20];
}
shipments[10000];
struct order
{
int shipment_ids[20];
}
orders[3000];
int main()
{
// if I want to access an item's data of a certain order, I do:
for (int i = 0; i < 3000; ++ i)
{
if (items[shipments[orders[4].shipment_ids[5]]].weight > 23.0)
s |= (1<< 31);
}
}
Я слышал, чторазмещение данных в массивах - это лучший способ повысить производительность при многократном циклическом повторении данных, я просто хочу узнать ваше мнение об этом коде ...