Mat和Pat希望邀请他们的朋友来参加派对。他们要编写一个程序完成下面的任务。

让Mat输入他朋友的姓名列表。姓名存储在一个容器中,然后按排列后的顺序显示出来。
让Pat输入她朋友的姓名列表。姓名存储在另一个容器中,然后按排列后的顺序显示出来。
创建第三个容器,将两个列表合并,删除重复的部分,并显示这个容器的内容。
main.cpp:

#include <iostream>
using namespace std;
void input(vector<string>& ret) {
  string str;
  cout << "please input your friends:(按'q'结束)";
  while (cin >> str && str != "q") {
    ret.push_back(str);
  }
  sort(ret.begin(), ret.end());
  for (auto a : ret) {
    cout << a << " ";
  }
}
void imergeVector(vector<string>& ret1, vector<string>& ret2) {
  vector<string> ret3;
  ret3.reserve(ret1.size() + ret2.size());//预留足够的空间
  ret3.insert(ret3.end(), ret1.begin(), ret1.end());
  ret3.insert(ret3.end(), ret2.begin(), ret2.end());

  sort(ret3.begin(), ret3.end());//在使用unique前要先排序
  auto aut = unique(ret3.begin(), ret3.end());//去掉重复值
  for (auto it = ret3.begin(); it != aut; ++it) {
    cout << *it << " ";
  }
  cout << endl;
}
int main(void) {
  vector<string> pat, mat;
  cout << "【pat】:" << endl;
  input(pat);
  cout << "\n-----------------\n";
  cout << "【mat】:" << endl;
  input(mat);
  cout << "\n-----------------\n";
  imergeVector(pat, mat);
  return 0;
}

posted on 2024-02-29 11:27  wshidaboss  阅读(11)  评论(0编辑  收藏  举报