C++ 为什么当我试图插入一组向量时,它告诉我“向量下标超出范围”?
比如说C++ 为什么当我试图插入一组向量时,它告诉我“向量下标超出范围”?,c++,stl,C++,Stl,比如说 vector< set<int> > MY_VECTOR_SETS; MY_VECTOR_SETS[0].insert(1); 我正在尝试将数字1插入我的_VECTOR _零集合。在为向量赋值之前,我更喜欢使用方法resize: MY_VECTOR_SETS.resize(5) //this makes your vector resize to size of 5; MY_VECTOR_SETS[0] = 1; //assign value 1 to firs
vector< set<int> > MY_VECTOR_SETS;
MY_VECTOR_SETS[0].insert(1);
我正在尝试将数字1插入我的_VECTOR _零集合。在为向量赋值之前,我更喜欢使用方法resize:
MY_VECTOR_SETS.resize(5) //this makes your vector resize to size of 5;
MY_VECTOR_SETS[0] = 1; //assign value 1 to first element of vector
为什么当我试图插入一组向量时,它告诉我“向量下标超出范围”
因为您试图访问向量中不存在的集合
默认构造的向量为空。因此,零索引处没有对象。尝试访问不存在的对象具有未定义的行为
解决方案:确保向量至少包含一个集合,然后再尝试访问第一个集合。也许最简单的方法是使用一个非默认构造函数来创建一个非空向量。首先,您需要将一个集合推回到您的向量。。。或者在使用之前调用resize。为什么不直接执行vector