Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Here's an example in plain old C++. First I make a vector of the ranges for each dimension called <code>maxes</code>. if the sum of all indices are 2 then I print did something. In the example I loop z from 0 to 1, y from 0 to 2, x from 0 to 3</p> <p>You can for sure make this more neat.</p> <p>Here goes:</p> <pre><code>#include &lt;iostream&gt; #include &lt;vector&gt; using namespace std; int f(){ return 2 ; } void inner(int depth,vector&lt;int&gt; &amp; numbers,vector&lt;int&gt; &amp; maxes){ if (depth&gt;0){ for(int i=0;i&lt;maxes[depth-1];i++){ numbers[depth-1]=i; inner(depth-1, numbers,maxes) ; } }else{ // calculate sum of x,y,z: cout &lt;&lt; "values are "; for(int i=0;i&lt;numbers.size();i++){ cout &lt;&lt;numbers[i]&lt;&lt;" "; } int thesum(0); for(int i=0;i&lt;numbers.size();i++){ thesum+=numbers[i]; } if (thesum==f()){ cout &lt;&lt; "did something! "; } cout&lt;&lt;endl; } } void donest(){ vector&lt;int&gt; numbers; numbers.resize(3); vector&lt;int&gt; maxes; maxes.push_back(4); maxes.push_back(3); maxes.push_back(2); inner(numbers.size(),numbers,maxes); } int main(){ donest(); } </code></pre> <p>result:</p> <pre><code>values are 0 0 0 values are 1 0 0 values are 2 0 0 did something! values are 3 0 0 values are 0 1 0 values are 1 1 0 did something! values are 2 1 0 values are 3 1 0 values are 0 2 0 did something! values are 1 2 0 values are 2 2 0 values are 3 2 0 values are 0 0 1 values are 1 0 1 did something! values are 2 0 1 values are 3 0 1 values are 0 1 1 did something! values are 1 1 1 values are 2 1 1 values are 3 1 1 values are 0 2 1 values are 1 2 1 values are 2 2 1 values are 3 2 1 </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload