Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<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>
 

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