【发布时间】:2017-04-08 02:27:23
【问题描述】:
我一直在阅读有关如何创建一组数组并使用 C++ 中的 for 循环填充这些数组的内容。到处都说我需要使用向量。我已经创建了数组并使用向量填充它们(我认为)。当我编译并运行显示数组时,一切正常。当我尝试显示数组的内容时,程序编译正常,但运行时崩溃。
我正在尝试创建 100 个数组,它们的大小每次增加 500 个元素。 (这是用于我们需要测试算法有效性的作业。)
unsigned int numArrays = 100;
unsigned int arraySize = 0;
//Create holder variable:
unsigned int randomInt = 0;
//Create the arrays:
std:vector<std::vector<int> > arrays(numArrays);
for(std::size_t i=0; i< numArrays; i++){
arraySize = i * 500;
vector<int> temp;
temp.reserve(arraySize);
for(int j=0; j< arraySize; j++){
//Generate Random number:
randomInt = rand();
//Add the number to the array:
temp.push_back(randomInt);
}
arrays.push_back(temp);
}
for(int i=0; i<arrays.size(); i++){
cout << "{";
for(int j=0; j<arrays.at(i).size() - 1; j++){
cout << arrays.at(i).at(j) << ",";
}
cout << arrays.at(i).back() << "}" << endl;
}
我认为错误出现在最终嵌套循环中,但我不确定。提前致谢。
【问题讨论】:
-
没有什么能立刻让我眼前一亮。但是您是否尝试过调试程序?使用gdb?您应该能够运行它,然后回溯到发生错误的位置
标签: c++ arrays vector nested-loops iostream