struct something* и struct something[]. std::erase_if.journal.erase(i) нужно начинать итерировать сначала. Ну или использовать не итератор, а банальный перебор по индексу (for (int i = 0; i < journal.size(); i++)...). Только учтите, что тогда после вызова erase, у вас по текущему индексу появится новый элемент и нужно будет повторить тело цикла еще раз, не увеличивая индекс. git reset --hard <remote-branch-name> С точки зрения математики тут есть две точки и вопрос «какая функция».
git merge мержит ветки. Так как вы сейчас не находитесь ни на какой ветке, он вам ничем не поможет. Но в общем случае - он просто мержит ветки между собой. git merge - только один из них. В некоторых проектах предпочтение отдается git rebase. А в некоторых случаях - вообще нужен git reset --hard.git checkout remotes/<remote>/<branch>.