Печать значения вектора указателя - PullRequest
0 голосов
/ 01 декабря 2018

Скажем, у меня есть вектор указателей, но я хочу распечатать значение, на которое указывает первый указатель.Какой синтаксис я бы использовал?Я учусь работать с указателями, и я нигде не могу найти этот конкретный случай в Google.

Пример:

vector<int*> vec;
//fill the vector however it needs to be
cout << vec[0]; 
//This prints an address but I want the value that address points to

Ответы [ 2 ]

0 голосов
/ 01 декабря 2018

Вы просто должны разыменовать указатель, полученный с помощью vec[0], т.е. вам нужно будет написать

cout << *(vec[0]) << endl;

Обратите внимание, однако, что вы не резервировали память для указателя;возможно, вы даже хотите управлять простыми массивами целых.Рабочий пример (даже если кто-то еще может обсудить, насколько важно иметь вектор, поддерживающий указатели на целые числа), может выглядеть следующим образом:

int main() {

    int a[] = { 1,2,3 };
    std::vector<int*> vec;
    vec.push_back(a);
    cout << *(vec[0]) << endl;
    cout << vec[0][1] << endl;
}

Вывод:

1
2
0 голосов
/ 01 декабря 2018

Вы можете получить значение того, на что указывает указатель, разыменовав указатель с помощью *, так что вы получите *(vec[0]), для этого потребуется, чтобы вектор имел хотя бы один элемент на первом месте и указывална что-то действительное, конечно.

При этом, пожалуйста, пересмотрите, если вам вообще нужно использовать указатели вообще, часто я вижу, что указатели используются без веской причины.Используйте обычные int s, если у вас нет веских оснований оправдывать использование указателей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...