Я новый пользователь C++ и написал код, который работает вместе с другими функциями. Мне нужно было внести изменения в код с помощью if & else if, которые привели к завершению всего кода 4.6333 мин, по сравнению с 0,61 мин до модификации (обратите внимание, что эти длительности относятся ко всему коду, а не к примеру, который был вставлен ниже).C++ быстрее, если инструкции else
Ниже приведено «только» измененная часть в качестве примера (которая может выполняться в C++ отдельно).
У кого-нибудь есть предложение получить этот код быстрее?
#include <iostream>
#include <vector>
#include <fstream>
#include <ctime>
using namespace std;
int main()
{
static const double InflVecVals001[9] = { 100.0, 200.0, 300.0, 400.0, 500.0, 600.0, 700.0, 800.0, 900.0 };
int FloorMnodeTagscol1[6] = { 11, 12, 13, 14, 15, 16 }; int FloorMnodeTagscol6[6] = { 61, 62, 63, 64, 65, 66 };
int FloorMnodeTagscol2[6] = { 21, 22, 23, 24, 25, 26 }; int FloorMnodeTagscol7[6] = { 71, 72, 73, 74, 75, 76 };
int FloorMnodeTagscol3[6] = { 31, 32, 33, 34, 35, 36 }; int FloorMnodeTagscol8[6] = { 81, 82, 83, 84, 85, 86 };
int FloorMnodeTagscol4[6] = { 41, 42, 43, 44, 45, 46 }; int FloorMnodeTagscol9[6] = { 91, 92, 93, 94, 95, 96 };
int FloorMnodeTagscol5[6] = { 51, 52, 53, 54, 55, 56 };
int tagNode = 91;
double fact;
if ((tagNode == FloorMnodeTagscol1[0]) || (tagNode == FloorMnodeTagscol1[1]) || (tagNode == FloorMnodeTagscol1[2]) || (tagNode == FloorMnodeTagscol1[3]) || (tagNode == FloorMnodeTagscol1[4]) || (tagNode == FloorMnodeTagscol1[5]))
{
fact = InflVecVals001[0];
}
else if ((tagNode == FloorMnodeTagscol2[0]) || (tagNode == FloorMnodeTagscol2[1]) || (tagNode == FloorMnodeTagscol2[2]) || (tagNode == FloorMnodeTagscol2[3]) || (tagNode == FloorMnodeTagscol2[4]) || (tagNode == FloorMnodeTagscol2[5]))
{
fact = InflVecVals001[1];
}
else if ((tagNode == FloorMnodeTagscol3[0]) || (tagNode == FloorMnodeTagscol3[1]) || (tagNode == FloorMnodeTagscol3[2]) || (tagNode == FloorMnodeTagscol3[3]) || (tagNode == FloorMnodeTagscol3[4]) || (tagNode == FloorMnodeTagscol3[5]))
{
fact = InflVecVals001[2];
}
else if ((tagNode == FloorMnodeTagscol4[0]) || (tagNode == FloorMnodeTagscol4[1]) || (tagNode == FloorMnodeTagscol4[2]) || (tagNode == FloorMnodeTagscol4[3]) || (tagNode == FloorMnodeTagscol4[4]) || (tagNode == FloorMnodeTagscol4[5]))
{
fact = InflVecVals001[3];
}
else if ((tagNode == FloorMnodeTagscol5[0]) || (tagNode == FloorMnodeTagscol5[1]) || (tagNode == FloorMnodeTagscol5[2]) || (tagNode == FloorMnodeTagscol5[3]) || (tagNode == FloorMnodeTagscol5[4]) || (tagNode == FloorMnodeTagscol5[5]))
{
fact = InflVecVals001[4];
}
else if ((tagNode == FloorMnodeTagscol6[0]) || (tagNode == FloorMnodeTagscol6[1]) || (tagNode == FloorMnodeTagscol6[2]) || (tagNode == FloorMnodeTagscol6[3]) || (tagNode == FloorMnodeTagscol6[4]) || (tagNode == FloorMnodeTagscol6[5]))
{
fact = InflVecVals001[5];
}
else if ((tagNode == FloorMnodeTagscol7[0]) || (tagNode == FloorMnodeTagscol7[1]) || (tagNode == FloorMnodeTagscol7[2]) || (tagNode == FloorMnodeTagscol7[3]) || (tagNode == FloorMnodeTagscol7[4]) || (tagNode == FloorMnodeTagscol7[5]))
{
fact = InflVecVals001[6];
}
else if ((tagNode == FloorMnodeTagscol8[0]) || (tagNode == FloorMnodeTagscol8[1]) || (tagNode == FloorMnodeTagscol8[2]) || (tagNode == FloorMnodeTagscol8[3]) || (tagNode == FloorMnodeTagscol8[4]) || (tagNode == FloorMnodeTagscol8[5]))
{
fact = InflVecVals001[7];
}
else if ((tagNode == FloorMnodeTagscol9[0]) || (tagNode == FloorMnodeTagscol9[1]) || (tagNode == FloorMnodeTagscol9[2]) || (tagNode == FloorMnodeTagscol9[3]) || (tagNode == FloorMnodeTagscol9[4]) || (tagNode == FloorMnodeTagscol9[5]))
{
fact = InflVecVals001[8];
}
else
{
fact = 1.0;
}
//cout << "\n tagnode:" << tagNode << endl;
//cout << "\n factor:" << fact << endl;
cin.get();
return 0;
}
Посмотрите «2D-массивы». Думаю, вас больше беспокоит внешний вид и обслуживание. – LogicStuff
Я серьезно сомневаюсь, что этот код может занять несколько минут (он даже не имеет одного цикла). Это ваш настоящий код? –
Какая была модификация? –