Replaced vector.at(x) to vector[x] at procCross function.

Generating became more than 20% faster
This commit is contained in:
2015-06-23 14:27:19 +03:00
parent c1eb60d5c3
commit ea8523683d
2 changed files with 9 additions and 9 deletions

View File

@@ -175,22 +175,22 @@ bool procCross(
WordInfo cur_wi = winfos.at(cur_word_ind); WordInfo cur_wi = winfos.at(cur_word_ind);
size_t rand_add = rand() % 100000; size_t rand_add = rand() % 100000;
size_t cur_len = cur_wi.len; size_t cur_len = cur_wi.len;
size_t cur_words_size = words.at(cur_len).size(); size_t cur_words_size = words[cur_len].size();
for (size_t icw = 0; icw < cur_words_size; ++icw){ for (size_t icw = 0; icw < cur_words_size; ++icw){
if ( used.find(getWordUniq(icw,cur_len)) != used.end() ) if ( used.find(getWordUniq(icw,cur_len)) != used.end() )
continue; continue;
TransedWord cur_word = words.at(cur_len).at((icw + rand_add) % cur_words_size); TransedWord cur_word = words[cur_len][(icw + rand_add) % cur_words_size];
// Показывает, можно ли записать это слово в сетку // Показывает, можно ли записать это слово в сетку
bool can_write = true; bool can_write = true;
if ( cur_wi.direct ){ if ( cur_wi.direct ){
for (size_t j = 0; j < cur_wi.len; ++j) for (size_t j = 0; j < cur_wi.len; ++j)
if ( (grid.at(cur_wi.x + j).at(cur_wi.y) != TRANS_CLEAR) && if ( (grid[cur_wi.x + j][cur_wi.y] != TRANS_CLEAR) &&
(grid.at(cur_wi.x + j).at(cur_wi.y) != cur_word.at(j)) ) (grid[cur_wi.x + j][cur_wi.y] != cur_word[j]) )
can_write = false; can_write = false;
} else { } else {
for (size_t j = 0; j < cur_wi.len; ++j) for (size_t j = 0; j < cur_wi.len; ++j)
if ( (grid.at(cur_wi.x).at(j + cur_wi.y) != TRANS_CLEAR) && if ( (grid[cur_wi.x][j + cur_wi.y] != TRANS_CLEAR) &&
(grid.at(cur_wi.x).at(j + cur_wi.y) != cur_word.at(j)) ) (grid[cur_wi.x][j + cur_wi.y] != cur_word[j]) )
can_write = false; can_write = false;
} }
@@ -202,10 +202,10 @@ bool procCross(
if ( cur_wi.direct ){ if ( cur_wi.direct ){
for (size_t j = 0; j < cur_wi.len; ++j) for (size_t j = 0; j < cur_wi.len; ++j)
t_grid.at(cur_wi.x + j).at(cur_wi.y) = cur_word.at(j); t_grid[cur_wi.x + j][cur_wi.y] = cur_word[j];
} else { } else {
for (size_t j = 0; j < cur_wi.len; ++j) for (size_t j = 0; j < cur_wi.len; ++j)
t_grid.at(cur_wi.x).at(j + cur_wi.y) = cur_word.at(j); t_grid[cur_wi.x][j + cur_wi.y] = cur_word[j];
} }
if (procCross(t_used, words, t_grid, winfos, cur_word_ind + 1, out)){ if (procCross(t_used, words, t_grid, winfos, cur_word_ind + 1, out)){

View File

@@ -1 +1 @@
./Debug/main.cpp.o ./Debug/fmain.cpp.o ./Debug/fsettings.cpp.o ./Debug/src_crossexport.cpp.o ./Debug/src_crossgen.cpp.o ./Debug/fbgui_fbgui.cpp.o ../Release/main.cpp.o ../Release/fmain.cpp.o ../Release/fsettings.cpp.o ../Release/src_crossexport.cpp.o ../Release/src_crossgen.cpp.o ../Release/fbgui_fbgui.cpp.o