填充向量中包含的集合是否正确?

时间:2017-01-04 22:40:35

标签: c++ memory-management vector stl set

我有vector<set<int>> v(10);。每个集合可以由一些数据填充。然后我将整数插入随机设置,例如v[5].insert(99);。它会导致未定义的行为吗?

1 个答案:

答案 0 :(得分:1)

只有当你超出向量的范围时。

如果您的vector至少包含6个元素,则v[5].insert(99);定义明确。

为确保不这样做,您可以使用at访问者功能:

 v.at(5).insert(99);

如果您尝试访问数组末尾,则会抛出std::out_of_range异常。