В 3 строках (не считая создания вектора и списка, а также лишних разрывов строк в названии читаемости):
vector<string> vec{"words", "words", "are", "fun", "fun"};
sort(vec.begin(), vec.end());
set<string> uvec(vec.begin(), vec.end());
list<string> output;
set_difference(vec.begin(), vec.end(),
uvec.begin(), uvec.end(),
back_inserter(output));
Объяснение решения:
set_difference()
. uvec
автоматически сохранит отсортированные элементы и устранит дубликаты. output
будет заполнен элементами vec - uvec
. Вы добавили этот пакет number-is-nan
в package.json
или, если он не добавлен, просто запустите npm install --save number-is-nan