在 std::string 中,只有 const 成员可以像 c_str() 这样获取数据。但是,我可以通过获取对字符串第一个元素的引用,operator[]
并且可以对其进行写入。
例如,如果我有功能:
void toupper(char *first,char *last_plus_one);
我可以直接写入 vector 以获取指向第一个元素的指针:
vector<char> message // has "Some Message";
toupper(&message[0],&message[0]+message.size());
我可以用 std::string 做同样的事情吗?
string message="Some Message";
toupper(&message[0],&message[0]+message.size());
标准是否保证内存的位置实际上是线性的?IE:
&(*(message.begin()+n)) == &message[n]
谢谢。