
std::String 用 size() 或 Length(),别用 sizeof
很多人一上来就写 sizeof(str),结果得到 24 或 32 —— 这是 std::string 对象本身的大小,不是里面存的字符数。它内部用指针管理堆上内存,sizeof 根本不看内容。
正确做法就是调 size() 或 length(),这两个完全等价,都是 O(1) 时间查内部计数器:
std::string s = "hello"; std::cout << s.size(); // 输出 5 std::cout << s.length(); // 输出 5,一样
- 别对
std::string 用 c_str() 再算 strlen,多此一举还慢
- 如果字符串含 ‘