A std::set实现为二叉树,因此具有左右指针的节点以及数据元素.您可以通过动态内存库函数对这些内容的分配进行舍入.所以是的 - 对于一个或三个机器字的元素,开销将作为比率/百分比"显着"(例如,2个64位指针+ a char可以轻松地向上舍入到例如32个字节...... 32倍的开销),从系统/应用程序行为的角度来看,可能是也可能不重要.如果您在意,请始终在您自己的系统上进行测量.
对于average-9-char string,总体内存使用量不仅取决于您是否使用set或者vector,而且还有多少string文本适合任何短字符串优化缓冲区(string对象内部;如果您实现提供)这样的优化),而不是需要分配更多的动态内存来存储文本.