我刚接触编程,想要了解Linux下的gcc,当我使用std::vector()
保留空间时。
我期望类似于new
语句,但我在_M_allocate
中找到的是vector.tcc
。
环顾四周后,我发现这些_M_something
语句无处不在,但没有正确的解释。
有人可以帮助我吗?
这些符号的解析方式和位置在哪里?
答案 0 :(得分:1)
_M_something
表示内部成员函数。它有一个reserved indentifier(下划线+大写字母)。
Member data and function names: _M_.*
Examples: _M_num_elements _M_initialize ()
std::vector
不使用原始new/delete
,而是std::allocator
来管理/构建内存块。