«Маленькая» проблема, которую я имею сейчас, состоит в том, чтобы получить «разницу» между 2 строками. < /P>
Давайте возьмем эти 2 строки, например: < /p>
std::string oldVolumes = "MASTER:50:SYSTEM:50:STEAM
std::string newVolumes = "MASTER:30:SYSTEM:50:STEAM
< /code>
Теперь я хочу сравнить эти 2 строки. Допустим, я взорву каждую строку в вектор с помощью ":" как разделитель (у меня есть функция с именем взорванием, чтобы разрезать данную строку делимителем и записать строку до вектора). < /P>
достаточно хорошо. Но, как вы можете видеть, в старой строке есть uplay со значением 100, но в новой строке отсутствует. Кроме того, есть 2 новых ценностях (RocketLeague и Chrome), которые отсутствуют в старом. Но не только «аудиосессии /имена» различны, но и значения тоже разные. < /P>
То, что я хочу сейчас, для каждого сеанса, который находится в обеих струнах (например, мастер и систему), чтобы сравнить значения, и если новое значение отличается от старого, я хочу добавить это изменение в другую строку, например: < /p>
std::string volumeChanges = "MASTER:30"; // Cause Master is changed, System not
< /code>
Если в старой строке есть сеанс, но не в новой, я хочу добавить: < /p>
std::string volumeChanges = "MASTER:30:REMOVE:UPLAY";
< /code>
Если в новом есть сеанс, который отсутствует в старой строке, я хочу добавить его так: < /p>
std::string volumeChanges = "MASTER:30:REMOVE:UPLAY:ADD:ROCKETLEAGUE:ROCKETLEAGUE:80:ADD:CHROME:CHROME:100";
< /code>
Строка VolumeChanges просто для того, чтобы показать вам, что мне нужно. Я постараюсь сделать лучше после этого. < /P>
У вас есть идеи о том, как реализовать такое сравнение? Мне не нужен конкретный пример кода или что -то в этом роде, просто некоторые идеи о том, как я мог бы сделать это в теории. По крайней мере, это как git. Если вы внесете изменения в текстовый файл, вы видите в красном удаленном тексту и зеленым. Что -то похожее на это, только с струнами или векторами струн.
Подробнее здесь: https://stackoverflow.com/questions/457 ... s-like-git
Мобильная версия