web-dev-qa-db-fra.com

Quelle est la difference entre cbegin et begin for vector?

Le membre begin a deux surcharges dont l'une est const_iterator begin() const;. Il y a aussi le cbeginconst_iterator cbegin() const noexcept;. Les deux retournent const_iterator au début d'une liste. Quelle est la différence?

35
user3663882

begin renverra un iterator ou un const_iterator selon la const-qualification de l'objet auquel il est appelé.

cbegin renverra un const_iterator sans condition.

std::vector<int> vec;
const std::vector<int> const_vec;

vec.begin(); //iterator
vec.cbegin(); //const_iterator

const_vec.begin(); //const_iterator
const_vec.cbegin(); //const_iterator
39
TartanLlama