在向量中使用以下内容是危险的吗?

时间:2014-06-04 14:13:08

标签: c++

我有一个成员变量vector<Foo> m_list

在某些方法中,我在Foo类型

中创建自动变量a
Foo a;
m_list.push_back(a)

m_list [0]可能无效吗?

Class Foo 
{
    vector<int> _colors;
    vector<int> _flowers;
}

1 个答案:

答案 0 :(得分:2)

一旦局部变量m_list[0]超出范围,您似乎会担心a会发生什么。不要。 push_back实际上将a副本推送到m_list。现在;如果您期望am_list[0]是相同的,那么可能会导致其他问题,但只要ClassA具有正常运行的复制构造函数(并且基于您的编辑,它会) ,试图访问被破坏的对象不会成为其中之一。