for (int ix = x - r; ix < x + r + 1; ix++) {
for (int iz = z - r; iz < z + r + 1; iz++) {
for (int iy = y - r; iy < y + r + 1; iy++) {
// if ix,iy,iz = something blah blah (this part isn't needed)
}
}
}
Run Code Online (Sandbox Code Playgroud)
好的,现在问题就在这里.上面的当前代码获得x,y,z和r(范围).它的工作是通过"立方体"引用,直到满足我设定的某个条件.问题在于它从立方体的外部开始并且基本上从一个角落进入另一个角落.
我正在寻找一种方式(我的数学/ Java是不是喜欢我大气压)在从POS POS机和环向外开始(包括POS本身),直到它到达立方体的最外面的边界.
因此,如果我们给出了所有假值,让我们使用x = 5,y = 5,z = 5,r = 2代码应检查5,5,5 - 4,5,5 6,5,5 5,6,5 5,4,5等基本上从中心向外迭代每个东西. …
好的,所以我正在寻找"最好的方法"来弄清楚如何处理这个问题.
我有一些设置的布尔值,并希望存储和访问它们更清洁.
-- Current
bool MySetting1;
bool MySetting2;
bool MySetting3;
bool MySetting4;
.....
Accessed with
.....
if (MySetting1)
Run Code Online (Sandbox Code Playgroud)
在这个例子中,我知道我的设置是什么以及所有有趣的爵士乐.我已经考虑了选项并环顾了地图和无序地图和布尔矢量......我只是在寻找最优化的做事方式.因为目前的方式......很好......在我看来它并不是很干净.
enum myEnum
{
SETTING_NAME1 = 0,
SETTING_NAME2 = 0,
...
}
map<int,bool> myMap;
Run Code Online (Sandbox Code Playgroud)
执行myMap [SETTING_NAME1]的访问时间是否与当前方法相同?它是直接访问还是必须进行查找?
我只是想更新,让每个人都知道我采取的策略.
我使用enum进行识别
enum myEnum
{
SETTING_NAME1 = 0,
SETTING_NAME2 = 1,
...
}
Run Code Online (Sandbox Code Playgroud)
和矢量来保存和调用数据
vector<bool> myVec;
if (myVec[SETTING_NAME1])
Run Code Online (Sandbox Code Playgroud)
这应该让我直接访问,保持大小相对较小(因为它是一个基于位的矢量),以及我想要的分离.