相关疑难解决方法(0)

string c_str()与data()

我已经阅读了几个地方,c_str()data()(在STL和其他实现中)之间的区别c_str()是总是空终止而data()不是.据我在实际实现中看到的,他们要么做同样的事情,要么做data()电话c_str().

我在这里错过了什么?在哪种情况下使用哪一个更正确?

c++ stl c-str

93
推荐指数
3
解决办法
4万
查看次数

为什么不string :: data()提供一个Mutable char*?

array,stringvector所有得到了data方法,该方法:

返回指向用作元素存储的基础数组的指针.指针是范围[ data(); data() + size())即使容器为空,也始终是有效范围.[ 来源 ]

此方法const以所有适用容器的可变和版本提供,例如:

T* vector<T>::data();
const T* vector<T>::data() const;
Run Code Online (Sandbox Code Playgroud)

所有适用的容器,也就是除了string只提供const版本:

const char* string::data() const;
Run Code Online (Sandbox Code Playgroud)

这里发生了什么?为什么会被string贬低,何时char* string::data()会如此有用?

c++ string containers c-strings c++11

18
推荐指数
2
解决办法
4082
查看次数

标签 统计

c++ ×2

c++11 ×1

c-str ×1

c-strings ×1

containers ×1

stl ×1

string ×1