我在创建这个2D矢量后运行程序时遇到了尴尬的结果。该程序在启动时实际崩溃。但我基本上试图为2D矢量输入一组数据,这些数据旨在保留第一列中某些作物的蒲式耳数量(如整数),然后保留每种作物的产量比(作为INT)。我还没有宣布屈服比,但即使第二列留空(就每个元素的值而言)也不应该有问题。这是我的代码:
vector<vector<int> >crops(2, vector<int>(43));
crops[0][0]=0; //Arugula
crops[1][0]=2000000; //Beans
crops[2][0]=0; //Beets
crops[3][0]=0; //Cabbages
crops[4][0]=0; //Cammomile
crops[5][0]=0; //Carrots
crops[6][0]=0; //Catmint
crops[7][0]=0; //Celery
crops[8][0]=0; //Coriander
crops[9][0]=0; //Corn
crops[10][0]=0; //Cucumbers
crops[11][0]=0; //Eggplants
crops[12][0]=2000000; //Fennel
crops[13][0]=1500000; //Flax
crops[14][0]=0; //Garlix
crops[15][0]=0; //Greenwoad
crops[16][0]=0; //Hem
crops[17][0]=0; //Leeks
crops[18][0]=0; //Lettuce
crops[19][0]=0; //Madder
crops[20][0]=0; //Mint
crops[21][0]=0; //Mustard
crops[22][0]=5000000; //Oats
crops[23][0]=0; //Onions
crops[24][0]=0; //Parsnips
crops[25][0]=0; //Parsely
crops[26][0]=2500000; //Peas
crops[27][0]=0; //Poppy
crops[28][0]=0; //Potatoes
crops[29][0]=0; //Pumpkins
crops[30][0]=0; //Radishes
crops[31][0]=0; //Rutabagas
crops[32][0]=0; //Spinach
crops[33][0]=4000000; //Spring Barley
crops[34][0]=0; //Squash
crops[35][0]=0; //Tomatoes
crops[36][0]=0; //Turnips
crops[37][0]=0; //Vetches
crops[38][0]=0; //Weld
crops[39][0]=0; //Woad
crops[40][0]=6000000; //Barley - Winter Crop
crops[41][0]=5000000; //Mixtill - Winter Crop
crops[42][0]=4000000; //Wheat - Winter Crop
虽然,我现在必须离开工作,但是今晚我回来后,我将能够回答任何答案。感谢那些想要帮助的人! :)
答案 0 :(得分:2)
交换您的下标索引。
crops[13][0] -> crops[0][13]
宣布
时vector<vector<int> >crops(2, vector<int>(43));
您创建了一个向量,该向量使用2个向量进行值初始化,每个向量都使用43个整数进行初始化(意味着它们初始化为0)。外部载体中有两个向量,因此您只能在不读取别人记忆的情况下进行作物[0]或作物[1]。
或者,当然,您可以将声明更改为:
vector<vector<int> >crops(43, vector<int>(2));