Beispiel #1
0
void updateSounds() {
	auto prevIt = sounds.before_begin();
	for (auto it = sounds.begin(); it != sounds.end(); it++) {
		if (it->getStatus() == sf::Sound::Stopped) {
			sounds.erase_after(prevIt);
			it = prevIt;
		}
		else prevIt = it;
	}
}
Beispiel #2
0
void remove_evens_and_double_odds(forward_list<int>& data) {
    for (auto cur = data.begin(), prev = data.before_begin(); cur != data.end(); ) {
        if (*cur & 0x1)
            cur = data.insert_after(prev, *cur),
            advance(prev, 2),
            advance(cur, 2);
        else
            cur = data.erase_after(prev);
    }
}
forward_list<int> LinkedListsExpert::deleteDuplicates(forward_list<int> list){
    forward_list<int>::iterator current = list.begin();
    forward_list<int>::iterator previous = list.begin();
    
    unordered_map<int, int> table;
    table[*current] = 1;
    current++;
    while (current != list.end()) {
        if (table.count(*current) == 0) {
            table[*current] = 1;
            current++;
            previous++;
        } else{ //delete node
            current = list.erase_after(previous);
        }
    }
    return list;
}