我对 C++ 很陌生,但我知道你不能像 std::string 类似乎让你那样随意使用内存。例如:
std::string f = "asdf";
f += "fdsa";
字符串类如何处理越来越大的问题?我假设它分配了默认的内存量,如果它需要更多,它new
会占用更大的内存块并将其自身复制到该内存块。但是,每次需要调整大小时都必须复制整个字符串,这不是非常低效吗?我真的想不出另一种方法可以做到(但显然有人做到了)。
就此而言,所有 stdlib 类(如向量、队列、堆栈等)如何如此透明地处理增长和收缩?