Читайте вход за строкой и конвертируйте в вектор и печатайте - PullRequest
0 голосов
/ 27 ноября 2018

Попытка ввести точно следующие данные, содержащие 14 URL-адреса в 7 строках.

google.com gmail.com
google.com maps.com
facebook.com ufl.edu
ufl.edu google.com
ufl.edu gmail.com
maps.com facebook.com
gmail.com maps.com

через cin, сохранить каждый URL-адрес как вектор и распечатать только уникальные векторы, как это вc++:

1 google.com
2 gmail.com
3 facebook.com
4 maps.com
5 ufl.edu 

Пока что я сделал следующий код, но он не печатает vector.

int main()
{
  vector<string> Urls;
  std::string urls;
  std::getline(std::cin, urls); // get first line
  std::istringstream iss(urls);
  std::string word;

  while (std::getline(std::cin, urls)) {
      std::cout << urls << "\n";
      Urls.push_back(word);    
  }

  for(int i =0; i <Urls.size(); i++) {
     cout <<Urls[i]<<endl;
  }
}

1 Ответ

0 голосов
/ 27 ноября 2018

В соответствии с вашим ограничением для ввода всегда исправлено.Есть 7 строк ввода, и каждая строка содержит 2 URL.Таким образом, в целом мы должны отсканировать 14 URL в виде строки.И, чтобы найти уникальные строки, мы можем использовать hashMap для хранения URL-адресов и вставлять URL-адрес в вектор, только если он не находится в hashMap.Общий код:

int main() {
vector<string>uniqueUrl;
unordered_map<string,bool>hashMap;
for (int i = 0; i < 14; ++i) {
    string s;
    cin>>s;
    if (hashMap.find(s) == hashMap.end()) {
        uniqueUrl.push_back(s);
        hashMap[s] = true;
    }
  }
  for (int i = 0; i < uniqueUrl.size(); ++i) {
     cout<<uniqueUrl[i]<<endl;
  }
  return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...