我对C++还不是很熟悉,但我知道不能像std::string类那样随意使用内存。例如:
std::string f = "asdf";
f += "fdsa";
字符串类如何处理扩容和缩小?我认为它会分配一定数量的内存,如果需要更多,则使用new
分配更大的内存块并将自己复制到其中。但是每次需要调整大小时都必须复制整个字符串,这不是非常低效吗?我真的想不到还有其他方式来完成此操作(但显然有人做到了)。同样,所有stdlib类(例如vector、queue、stack等)是如何处理透明地增长和缩小的?
std::vector
实现中是这样。 - fredoverflow