Как-то представлялось что iterators на std::vector изоморфны указателю на элементы вектора.
Но вот это не компилируется:
#include <iostream>
#include <vector>
int main()
{
std::vector<int> vec = {0,1,2};
const int* p = vec.cbegin();
std::cout << "Hello, world! " << p << "\n";
}
с ошибкой
source_file.cpp:9:16: error: no viable conversion from 'const_iterator' (aka '__wrap_iter<const int *>') to 'const int *'
const int* p = vec.cbegin();
^ ~~~~~~~~~~~~
ну кроме как делать это "в лоб"
const int* p = &vec[0];
Что я делаю не так?