如果我没理解错的话,string::begin
返回指向字符串中第一个元素的指针。如果是这样,我们为什么不直接使用 &str
来获取指针。
是否存在使用 begin
更好的情况,还是我误解了它的功能?
最佳答案
If I understand correctly,
string::begin
returns the pointer to the first element in the string.
不,它向字符串中的第一个元素返回一个迭代器。它有助于使 std::string
与设计用于标准容器的语言结构(认为模板)兼容。
why wouldn't we just use
&str
to get the pointer.
一方面,那不是字符串第一个元素的地址吗?假设 str
是一个类型为 std::string
的变量,这将是一个对象的地址,除其他外,(通常)持有指向第一个元素的指针的字符串。 (如果你指的是 c_str()
成员函数,那么可以这样做,但它不是一个特别清晰和可读的语法。)
关于c++ - 为什么 string::begin 存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61283098/