## How to solve "Undeclared identifier error" in "if" block?

I am creating `vector`

in building `mex`

file. I need to creat a `vector<vector<int>>`

which size is according to the input variable. The creating or declaring part is in a `if`

block. I need to use this variable outside the `if`

. Then it has an error "undeclared identifier". I found I should pre-define the variable. But I don't know the size in this way. Do I need to define a global variable? Or any other suggestion? My code is below.

void mexFunction(int nlhs, mxArray* plhs[], int nrhs, const mxArray* prhs[]) { int i; if ( i == 0) // if block { mwSize Num = mxGetNumberOfElements(prhs[i]); vector<vector<int>> V0(Num); } cout << V0.size()<<"\n"; // error }

This is a simplified example code. I really need the `if`

block. I think the problem is from the variable domain. But I have not figure out a good way to solve it.

You intuition is correct. The lifetime of `V0`

ends at the closing curly bracket of the enclosing `if`

. The object is destroyed and the name isn't visible in the outer scope.

You could solve the problem by moving it outside the `if`

.

void mexFunction(int nlhs, mxArray* plhs[], int nrhs, const mxArray* prhs[]) { vector<vector<int>> V0; int i; // hey, this is uninitialized! if (i == 0) // if block { mwSize Num = mxGetNumberOfElements(prhs[i]); V0.resize(Num); } cout << V0.size() << "\n"; // the vector is visible here }

**How to solve a Rubik's cube,** It took Erno Rubik (the inventor of the Rubik's Cube) one month to learn how to do a Rubik's Cube. Some people started thinking about how to Free math problem solver answers your algebra homework questions with step-by-step explanations.

The vector `V0`

is declared in your `if`

block, and it only exists within that scope. You are accessing it outside of that scope.

Also, you left the parens off the call to `size()`

.

**Learn How to Solve a Rubik's Cube in 10 Minutes (Beginner Tutorial ,** Learn to solve the Rubik's Cube in six simple steps. Easy tutorial with images and interactive demonstration. Just a few algorithms to memorize. Solving the Remaining 3x2 Puzzle 1. Repeat the first two methods until only a 3x2 grid remains. If you start with the top row and the left column, you 2. Arrange the top-left tile in the bottom-left space. At this point, the puzzle gets a bit trickier. Fortunately, there 3. Place the

`vector< vector<int>> V0(Num);`

This is declared inside the if, you are trying to use it outside of `if`

. That's the problem.

**Solve the Rubik's Cube (3x3),** How To Solve A Rubik's Cube. This is the easiest solution. You only have to learn a few moves: analize cube 3x3 puzzle Analize the 3x3 cube puzzle and learn Discover the Rubik's Cube. Spend some time playing with the puzzle to familiarize with it before you read this solution tutorial and see how far you can get without help. Most people can solve one face after spending some time with the cube.

**How to solve the Rubik's Cube - Beginners Method,** Steps of the Beginner's Rubik's Cube Solution: 1. White Edges 2. White Corners 3. Second Layer 4. Yellow Cross 5. Swap Yellow Edges 6. Position Yellow Corners 7. Orient Yellow Corners

**How to solve the Rubik's Cube | Blog,** Free equations calculator - solve linear, quadratic, polynomial, radical, exponential and logarithmic equations with all the steps. Type in any equation to get the solution, steps and graph

**Rubik's 3x3 Solution Guide,** If you want to learn how to solve the Rubik’s Cube, look no further, you have come to the right place! Getting help with solving the Rubik’s Cube is not cheating. There are 42 Quintillion possibilities, but only one correct solution. Hence without knowing how to solve a Rubik’s Cube it is nearly impossible.