【发布时间】:2014-02-21 19:44:26
【问题描述】:
我有一个 3d 结构向量。我通过结构的 i j 和 k 来指代结构在 3d 向量中的位置。但是,在制作数百万个这些时,它会占用大量内存,因为该对象存储了太多数据。
如何在不将信息存储在结构本身中的情况下有效地找出特定结构对象的 i,j,k 是什么。我可以用某种记忆算法来做吗?
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main() {
struct MyStruct {
size_t i;
size_t j;
size_t k;
bool some_bool;
};
vector<vector<vector<MyStruct>>> three_d_struct_v;
size_t max_i = 1000000;
size_t max_j = 10;
size_t max_k = 10;
for(size_t i = 0; i < max_i; i++) {
for(size_t j = 0; j < max_j; j++) {
for(size_t k = 0; k < max_k; k++) {
three_d_struct_v.emplace_back(MyStruct{i,j,k,false});
}
}
}
return 0;
}
【问题讨论】:
标签: c++ optimization memory-management vector struct