在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 次 |
| 最近记录: |