在C++ 03中,std :: string不需要存储在NUL终止的缓冲区中,但如果你调用c_str()
它,它将返回一个指向NUL终止缓冲区的指针.可以在c_str()
呼叫内合法地创建和/或终止该缓冲区.
在C++ 11中,所有std::string
实例都被终止,因此data()
也解决了NUL终止的缓冲区,甚至s[s.size()]
具有明确定义的含义,返回对终止NUL的引用.
std::string
很像 a std::vector
:它有一个长度属性,并且在 C++03 中不是以零结尾;在 C++11 中,'std::string' 似乎已终止,但我发现更容易将 'std::string' 视为字符的 'std::vector' 而不仅仅是终止的缓冲区。
归档时间: |
|
查看次数: |
1904 次 |
最近记录: |