【发布时间】:2020-08-14 01:20:50
【问题描述】:
我需要删除所有相同的单词(如果单词以相同的字母开头,则它们是相同的) 接下来是我的比较功能:
H J
J H
H I
因此,我需要将每个字母与另一个字母进行比较
bool compare(string a, string b) {
cout << a.front() << " " << b.front() << endl;
return(a.front() == b.front());
}
void Fifth_task(list <string>& lst) {
list <string> ::iterator it;
lst.unique(compare);
for (it = lst.begin(); it != lst.end(); ++it) {
cout << *it << endl;
}
}
int main(){
list <string> first;
first.push_back("Hello");
first.push_back("Johnny");
first.push_back("Hello");
first.push_back("Ildar");
Fifth_task(first);
return 0;
}
最后我应该得到三个字:你好,约翰尼,伊尔达 我该怎么做?
【问题讨论】:
-
std::list::unique返回连续个重复元素。因此,您要么需要在调用 unique 之前对列表进行排序,要么在必须保持顺序时使用不同的方法。 -
@1201ProgramAlarm 我需要同样的订单
标签: c++ string list compare unique