2017-01-30 5 views
0

Кто-нибудь знает, как вызвать векторный указатель так, чтобы его можно назначить целому числу? Ниже приводится код:Назначение 'int *' из несовместимого типа 'value_type' (aka 'std :: __ 1 :: vector <int, std :: __ 1 :: allocator <int>>')

void floodFillwithColor(vector<vector<int>>* M, int x, int y, int newC){ 

    int* prevC = M[x][y]; 
    int* newCPtr = &newC; 
    floodFillUtil(M, x, y, prevC, newCPtr); 
}; 
+2

'M' должен, вероятно, быть ссылкой, а не указателем. Кроме того, C и C++ - разные языки; только тег один. – qxz

ответ

2

как вызвать вектор указатель, так что он может быть назначен на целое число?

Вы не можете назвать вектор указателя, но вы можете использовать оператор разыменования, чтобы получить ссылку на остроконечный предмет, а затем применить оператор индексирования на этой ссылке:

if(M) 
    int some_value = (*M)[x][y]; // assign to an integer 
else 
    // handle the case where M is null 
+0

Отлично! это работает! Есть ли обобщенное правило для понимания того, что связано с указателями? –

+0

@JackReacher Определите, что вы подразумеваете под общим принципом для понимания всего, что связано с указателями. –

+0

@JackReacher No. Такое обобщенное правило не существует. Но это поможет вам приступить к работе: http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list – user2079303

Смежные вопросы