正在获取使用向量的cygwin_exception::open_stackdumpfile
Getting cygwin_exception::open_stackdumpfile working with vectors
我得到cygwin_exception::open_stackdumpfile试图运行我的代码。我想这是一个关于记忆力的错误。我几乎100%确信我会收到这个错误,因为我没有正确创建、发送到函数或处理maximumSets和/或compsub向量。请帮助我解决这个错误,并感谢您的所有回答!更新:修复了Paul Evans指出的问题。现在我不时地得到异常,但仍然得到它。
class Graph {
private:
int size; // the number of node
vector<vector<bool> > connected;
vector<vector<int> > bkv2(vector<int> oldSet, int ne, int ce,
vector<int> &compsub, vector<vector<int> > maximalSets);
public:
Graph(int size);
vector<vector<int> > findMaximalSets();
}
Graph::Graph(int n) {
int i, j;
srand((unsigned int) time( NULL));
size = n;
connected.resize(size);
for (int i=0; i<size; i++) {
connected[i].resize(size);
}
for (i = 0; i < size; i++) { // the graph is randomly generated
connected[i][i] = 1;
for (j = i + 1; j < size; j++) {
if (rand() % 2 == 1) {
connected[i][j] = 1;
connected[j][i] = 1;
} else {
connected[i][j] = 0;
connected[j][i] = 0;
}
}
}
}
vector<vector<int> > Graph::findMaximalSets() {
int i;
vector<int> all(size);
vector<int> compsub;
vector<vector<int> > maximalSets;
for (i = 0; i < size; i++) {
all[i] = i;
}
return bkv2(all, 0, size, compsub, maximalSets);
}
vector<vector<int> > Graph::bkv2(vector<int> oldSet, int ne, int ce,
vector<int> &compsub, vector<vector<int> > maximalSets) {
vector<int> newSet(ce);
int nod, fixp;
int newne, newce, i, j, count, pos, p, s, sel, minnod;
minnod = ce;
nod = 0;
for (i = 0; i < ce && minnod != 0; i++) {
p = oldSet[i];
count = 0;
for (j = ne; j < ce && count < minnod; j++)
if (connected[p][oldSet[j]]) {
count++;
pos = j;
}
if (count < minnod) {
fixp = p;
minnod = count;
if (i < ne) {
s = pos;
} else {
s = i;
nod = 1;
}
}
}
for (nod = minnod + nod; nod >= 1; nod--) {
p = oldSet[s];
oldSet[s] = oldSet[ne];
sel = oldSet[ne] = p;
newne = 0;
for (i = 0; i < ne; i++) {
if (!connected[sel][oldSet[i]]) {
newSet[newne++] = oldSet[i];
}
}
newce = newne;
for (i = ne + 1; i < ce; i++) {
if (!connected[sel][oldSet[i]]) {
newSet[newce++] = oldSet[i];
}
}
compsub.push_back(sel);
if (newce == 0) {
vector<int> copy = compsub;
maximalSets.push_back(copy);
} else if (newne < newce) {
maximalSets = bkv2(newSet, newne, newce, compsub, maximalSets);
}
compsub.pop_back();
ne++;
if (nod > 1) {
for (s = ne; !connected[fixp][oldSet[s]]; s++) {
}
}
}
return maximalSets;
}
这是因为您没有在任何地方初始化size
。
相关文章:
- 为重写std::exception的库生成swig接口时出错
- 什么是 std::exception::what() 以及为什么要使用它?
- 链表"exception thrown"
- 为什么程序员同时使用 std::bad_alloc 和 std::exception.是否 std::例外 仅是不够的
- Poco::Net::FTPClientSession 在 open() 方法上挂起 129 秒,如果 ftp 主机不存
- Node.js fs.open() 在尝试打开 4 个以上的命名管道 (FIFO) 后挂起
- POSIX open() 挂在 SMB 共享上
- C++ broken_promise exception
- C++:std::ofstream 方法 open() 在第二次迭代时擦除打开的 ifstream 文件
- Visual Studio "fatal error LNK1104: cannot open file"未使用或包含的库
- 请参阅在 Visual Studio 2019 中捕获 std::exception 时对函数模板实例化消息的引用
- C++ 错误检查 fstream open() 命令和一般字符串流错误处理
- QVTKWidget SetRenderWindow() with PCLVisualizer Exception
- 自定义派生的 std::exception 类的 'what' 函数返回神秘的废话
- 使用flag、return、exception、goto或break中止过程
- 由于某种原因,我的代码中出现了 [json.exception.type_error.302]。我知道错误意味着什么,但我不知道哪里有故障
- VS 2017 C++ - "cannot open source file 'sqlite3.h' "
- 在VS 15.7.5中,悬停在Open CV 3.4.1Mat上仍然冻结
- 计算着色器Open GL ES的多个输入
- 从生成文件编译错误:"Unable to open output file" ..."No such file or directory"