为什么当我尝试插入到集合向量中时,它会告诉我"vector subscript out of range"?
Why when I'm trying to insert into a vector of sets it's telling me "vector subscript out of range"?
例如
vector< set<int> > MY_VECTOR_SETS;
MY_VECTOR_SETS[0].insert(1);
我正试图在零的MY_VECTOR_SETS
中插入数字1。
在给向量赋值之前,我更喜欢使用方法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
为什么当我试图插入集合的向量时,它告诉我"向量下标超出范围"?
因为您正试图访问向量中不存在的集合。
默认构造的矢量为空。因此,在第0个索引处没有对象。尝试访问不存在的对象具有未定义的行为。
解决方案:在尝试访问第一个集合之前,请确保向量至少包含一个集合。也许最简单的方法是使用一个非默认构造函数来创建一个非空向量。
相关文章:
- 我看到"use of undeclared identifier"错误,有人可以告诉我如何解决它吗?
- 谁能告诉我我用 getline 做错了什么 (cpp) 格式
- 比特集告诉我的名字是什么?
- 我试图用这段代码找到二叉树的高度,但它一直返回 0,有人可以告诉我为什么吗?
- 任何人都可以告诉我我的 C++ 代码出了什么问题?
- 我可以让 valgrind 告诉我 _哪个_值未初始化吗?
- 程序告诉我,即使它们明显匹配,参数也不匹配
- 谁能告诉我为什么这段代码没有产生正确的输出?
- 谁能告诉我,程序中的错误是什么?该程序仅用于获取文件扩展名
- 为什么 gcc 告诉我我的模板不是模板?
- 代码以查找数组中的最大数字,但它仅将第一个数字显示为最大数字. 有人请告诉我为什么
- 关于这个在 Linux 上使用 gcc 编译的程序中的 vtable,nm 告诉我什么?
- 告诉我如何填充二维数组
- 我找不到瓦尔格林德告诉我的记忆链接
- 如何将char数组声明为函数参数?或告诉我此代码中还有其他问题?
- 合成错误不知道为什么会发生这种情况,请检查一下并告诉我这是我的编码还是视觉工作室
- 为什么只有一行告诉我操作员=不可行?但是其他人很好
- 有人可以告诉我波纹管代码(C++)穿了什么吗?
- 程序告诉我初始化在编写简单的C ++代码时不需要初始化的变量
- 为什么当我尝试插入到集合向量中时,它会告诉我"vector subscript out of range"?