如果我理解正确,则
string::begin返回指向字符串中第一个元素的指针。
不,它返回一个迭代器到字符串中的第一个元素。它有助于std::string与设计用于标准容器的语言结构(想想模板)兼容。
为什么我们不只是
&str用来获取指针。
一方面,那不是字符串第一个元素的地址?假设str是一个类型的变量std::string,这将是一个对象的地址,除其他外,(通常)持有指向字符串第一个元素的指针。(如果您指的是c_str()成员函数,那么可以这样做,但这不是一种特别清晰易读的语法。)