[英]C++ check if the array contains duplicates
我有字符串向量,我需要檢查數組是否包含重復項:
std::vector<std::string> data{};
const bool notContainsDuplicates = ...;
我可以用標准庫解決這個問題嗎?
您可以這樣做,使用標准庫集來計算唯一條目的數量,如果這與輸入數組的長度相同,則沒有重復項(另一種選擇是使用 unordered_map):
#include <cassert>
#include <string>
#include <vector>
#include <set>
bool contains_duplicates(const std::vector<std::string>& input)
{
std::set<std::string> set{ input.begin(), input.end() };
return (set.size() != input.size());
}
int main()
{
std::vector<std::string> no_dups{ "hello","this","does","not","contain","duplicates" };
std::vector<std::string> dups{ "hello","this","does","contain","duplicates","hello","this" };
assert(!contains_duplicates(no_dups));
assert(contains_duplicates(dups));
return 0;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.