我有这个代码,并且我已经生成了两次随机数的数组...... 现在,我只想在执行时将这些数字插入到向量中。
我正在使用Microsoft Visual Studio。
这是我的代码:
using namespace std;
int main() {
int gRows, gCols;
std::cout << "Enter Rows: " << std::endl;
std::cin >> gRows;
std::cout << "Enter Cols: " << std::endl;
std::cin >> gCols;
std::vector<std::vector<int>> cGrid;
int numOfElem = gRows*gCols;
int* randNum = new int[numOfElem];
for (int x = 0; x < (numOfElem / 2); x++) {
srand((unsigned int)time(0));
const int fNum = rand() % 20 + 1; //generate num between 1 and 100
const int sNum = rand() % 20 + 1;
randNum[x] = fNum;
randNum[x + 2] = sNum;
}
for (int y = 0; y < numOfElem; y++) {
std::cout << randNum[y] <<std::endl;
}
//int i = 0;
for (int nRows = 0; nRows < gRows; nRows++) {// for every row and column
for (int nCols = 0; nCols < gCols; nCols++) {
cGrid[gRows][gCols] = 0;//card at that coordinate will be equal to
std::cout << cGrid[gRows][gCols];
//i = i + 1;
}
std::cout << std::endl;
}}
答案 0 :(得分:0)
如何在执行/编译时将元素添加到数组/向量(c ++)?
您无法向数组添加元素。数组永远不会有比第一次创建时更多或更少的元素。
您可以在向量中添加元素&#34;在编译时#34;通过使用构造函数。从技术上讲,除非编译器进行一些优化,否则仍会在运行时添加元素。
在执行期间,您可以使用std::vector::push_back
或std::vector
拥有的其他成员函数之一。
作为旁注:在srand
的每次其他来电之前致电rand
是一种很好的方法,可以确保rand
返回的数字完全不是随机的。其次rand() % 20 + 1
不是&#34;介于1和100之间&#34;正如评论所说。第三,你毫无意义地覆盖了循环中的元素。第四,在使用它们之前,你没有初始化randNum
指向的数组中的所有元素。