メンバー begin には2つのオーバーロードがあり、そのうちの1つはconst_iterator begin() const;
です。 cbeginconst_iterator cbegin() const noexcept;
もあります。どちらもリストの先頭にconst_iterator
を返します。違いは何ですか?
begin
は、呼び出されたオブジェクトのconst-qualificationに応じて、iterator
またはconst_iterator
を返します。
cbegin
は無条件にconst_iterator
を返します。
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