C++向量列表
C++ list of vectors
我使用向量列表(来自STL)创建(或我想创建)简单的程序。
用户指定向量的数量,然后指定每个向量的长度。然后程序询问 for 循环中矢量的每个元素。
在询问用户编写第一个元素后,它崩溃了。在我将数据更改为 STL 列表和向量之前,程序运行良好。早些时候我使用简单的一维表和很少的循环,但这种类型的程序对我来说毫无用处。代码如下:
#include <iostream>
#include <vector>
#include <list>
using namespace std;
void writing(int, int);
int main() {
int n, i, j, m;
cout << "Give quantity of vectors" << endl;
cin >> m;
for (j = 1; j <= m; j++) {
cout << "Give quantity of elements in vector number " << j << endl;
cin >> n;
writing(n, m);
}
return 0;
}
void writing(int n, int m) {
int i;
int j = 0;
list<vector<double>> mylist;
{
auto it = mylist.begin();
advance(it, j);
vector<double>& v = *it;
for (i = 0; i <= n; i--) {
cout << "Give the element number " << i << endl;
cin >> v[i];
}
}
}
请帮我找到错误。我看到writing
函数中的int j
有误,但错误发生得更早。
这是一个空列表。
list<vector<double>> mylist;
下面是一个无法取消引用的迭代器,因为它来自空列表。
auto it = mylist.begin();
在这里它被取消引用。
vector<double>& v = *it;
您的列表为空,因此您正在尝试访问不存在的向量。 然后,您尝试访问矢量中不存在的元素,因为您从未指定过矢量的大小。
相关文章:
- 访问列表向量中的结构
- 从列表向量中删除无法按预期工作
- 从列表/向量制作嵌套 for 循环的最佳方法是什么?
- 在 c++ 中访问列表向量时出现问题
- 指向列表向量中的第n个元素
- 当迭代器添加到添加到列表向量的结构时,迭代器停止指向值?
- 如何将 for 循环中的每个迭代都放入列表/向量中?(C++)
- 删除列表向量中的元素并显示当前列表
- 如何与可以在列表/向量中使用的成员进行类型的类型
- 通过列表向量循环
- 如何使用C 创建多列列表/向量
- 存储动态创建对象的列表/向量的最佳方法是什么
- 基本STL:向量列表或列表向量,在这种特殊情况下哪个会更好
- Seg 错误初始化列表向量与控制台输入
- C++ 将文件读入数组/列表/向量
- 初始值设定项列表向量构造函数
- 如何在C++中初始化列表向量
- C++:保持实体列表向量与集合的最佳方式
- 如何将节点添加到列表向量
- 初始化列表向量时出错