如果我理解正确,string::begin
将返回指向字符串中第一个元素的指针。如果真是这样,我们为什么不只使用&str
来获取指针。
在某些情况下使用begin
更好,还是我误解了它的功能?
如果我理解正确,
string::begin
将返回指向字符串中第一个元素的指针。
否,它向字符串中的第一个元素返回iterator。它有助于使std::string
与旨在与标准容器一起使用的语言构造(思维模板)兼容。
为什么我们不只使用
&str
来获取指针。
有一件事,那不是字符串第一个元素的地址吗?假设str
是std::string
类型的变量,那将是对象的地址,该对象的地址(通常)是指向字符串的第一个元素的指针。 (如果您的意思是c_str()
成员函数,则可以这样做,但是它不是一种特别清晰易懂的语法。)
std::string::begin()
将迭代器返回到字符串的第一个字符。迭代器是指针的一般化,并且充当容器和算法之间的粘合剂,因此可以将两者分离。