std::vector::cbegin()
От: c-smile Канада http://terrainformatica.com
Дата: 22.12.17 20:21
Оценка:
Как-то представлялось что 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];


Что я делаю не так?
Отредактировано 22.12.2017 20:34 c-smile . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.