Метод data
Метод data класса vector возвращает указатель на первый элемент внутреннего массива, в котором хранятся данные вектора. Метод не принимает параметров. Полученный указатель можно использовать для доступа к элементам вектора через арифметику указателей или для передачи данных в функции, работающие с обычными массивами. Если вектор пуст, метод возвращает указатель, который нельзя разыменовывать.
Синтаксис
vec.data()
Пример
Давайте получим указатель на данные вектора и выведем первый элемент через разыменование:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> vec = {1, 2, 3, 4, 5};
int* ptr = vec.data();
cout << *ptr << endl;
return 0;
}
Результат выполнения кода:
1
Пример
Давайте используем арифметику указателей, чтобы получить доступ к третьему элементу вектора:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> vec = {1, 2, 3, 4, 5};
int* ptr = vec.data();
cout << ptr[2] << endl;
return 0;
}
Результат выполнения кода:
3
Пример
Давайте изменим элемент вектора через указатель, полученный методом data:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> vec = {1, 2, 3, 4, 5};
int* ptr = vec.data();
ptr[0] = 10;
cout << vec[0] << endl;
return 0;
}
Результат выполнения кода:
10