Метод data
Метод data возвращает указатель на первый элемент вектора.
Если вектор пуст, метод может вернуть нулевой указатель или
указатель, который нельзя разыменовывать. Метод не принимает
параметров и не изменяет сам вектор.
Синтаксис
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
Пример
Давайте изменим второй элемент вектора через
указатель, полученный с помощью метода data:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> vec = {1, 2, 3, 4, 5};
int* ptr = vec.data();
ptr[1] = 99;
for (int elem : vec) {
cout << elem << " ";
}
cout << endl;
return 0;
}
Результат выполнения кода:
1 99 3 4 5
Пример
Давайте выведем все элементы вектора, используя указатель и размер вектора:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> vec = {1, 2, 3, 4, 5};
int* ptr = vec.data();
for (size_t i = 0; i < vec.size(); i++) {
cout << ptr[i] << " ";
}
cout << endl;
return 0;
}
Результат выполнения кода:
1 2 3 4 5