我正在使用一个函数,该函数将
形式的结构数组作为输入struct Info
{
const char* something;
// more stuff
};
由于我不想担心清理char*
中的内存,我的想法是我
std::vector<std::string>
something
Info
std::vector::c_str()
结构
这样矢量拥有所有字符串,我不必担心内存管理。我唯一担心的是,向量可能决定在某个时刻将字符串移动到内存中,这会使我从c_str()
得到的指针无效。
所以我的问题是:假设我没有在向量中添加任何内容,我可以依靠指针保留它们的位置吗?作为奖励,我可以将步骤1和2组合成一个循环,假设我之前调用reserve
,以便向量不必移动吗?