我是一个 C++初学者,提一个比较简单的问题,希望可以得到诸位的解答。谢谢!
众所周知,在调用 std::string 的 c_str()函数时,返回的是一个 const char*类型,会以\0 结束。
在我自己实现 stl 时,我发现结尾的\0 会给 insert 等函数带来很多麻烦,所以存储字符串时,根本没有用\0 结束。但是,这样的问题就是,c_str()的返回值,经常会超出范围。
所以我想问问大家,在你们实现 stl 的时候,是以\0 为结尾使结果比较好看(但是这样会多占用一个字节),还是从 allocator 方面使他的结尾必定为 0,或者还有其他的解决办法?
一个新手比较困惑的问题,再次感谢!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.