尝试在 7
行中准确输入以下包含 14
url 的数据。
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 存储为一个 vector ,并在 c++
中仅打印唯一的 vector :
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;
}
}
最佳答案
根据您对输入的约束始终是固定的。有 7 行输入,每行包含 2 个 url。所以,总的来说,我们必须扫描 14 个 url 作为字符串。而且,为了找到唯一的字符串,我们可以使用 hashMap
来存储 url 并仅当它不在 hashMap
中时才将 url 插入到 vector 中。整体代码为:
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;
}
关于c++ - 逐行读取输入并转换为 vector 并打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53493945/