Я хочу попытаться получить счетчик слов на основе префикса trie. Но у меня есть некоторые проблемы. Он хорошо работает на простой вставке, но когда я использую потоки, все еще пуст.
Я пытаюсь использовать мьютекс, но он не работает.
Я использую cpp14 и cLion:
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -pthread")
My main.cpp
place with threads...
for (int i = 1; i < 21; i++) {
std::thread threads1(countFile, i);
i++;
std::thread threads2(countFile, i);
threads1.detach();
threads2.detach();
}
some code here...
//call file
void countFile(int str){
std::ifstream in(str + '.txt'); // pseudokod
std::string li;
while (std::getline(in, li)) {
go(li);
}
}
//call insert
void go(std::string str){
trie.insert(str);
}
My trie.hpp insert
void trie::insert(const std::string& str) {
trie_node* root = m_root;
const char* sptr = str.c_str();
while(*sptr){
char c = *sptr;
int id = c - 1;
if(root->children[id] == nullptr ){
trie_node *node = new trie_node();
node->payload = *sptr;
root->children[id] = node;
node->parent = root;
}
root = root->children[id];
sptr++;
}
root->is_terminal = true;
root->ctr_terminal++;
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Подскажите пожалуйста, я правильно понимаю, что этот оператор в деструкторе используется только применительно к атрибутам, являющимися...
Телефонный номер называют "шахматным", если его цифры набирают на кнопочной панели телефона ходом шахматного коня