The C++ Function using STL to Check Duplicate Elements/Character
- 时间:2020-09-17 14:37:27
- 分类:网络文摘
- 阅读:119 次

cplusplus
Let’s say we want to implement a C++ function based on STL containers to check if a given string contains duplicate characters, or a given vector/array contains duplicate elements. Luckily we can use the unordered set (or set which maintains order), that we can construct a set based on the vector/array/string, then we just need to compare the sizes of both set and the original container – if they are equal, it means all unique elements or duplicates otherwise.
1 2 3 4 | bool hasDuplicateCharacters(string arr) { unordered_set<char> st(begin(arr), end(arr)); return st.size() != arr.size(); } |
bool hasDuplicateCharacters(string arr) {
unordered_set<char> st(begin(arr), end(arr));
return st.size() != arr.size();
}Example:
1 2 | cout << (hasDuplicateCharacters("abcde") ? "true" : "false"); // false cout << (hasDuplicateCharacters("abcdea") ? "true" : "false"); // true |
cout << (hasDuplicateCharacters("abcde") ? "true" : "false"); // false
cout << (hasDuplicateCharacters("abcdea") ? "true" : "false"); // trueWe can use the C++ generic that allows us to pass in most data types – using the templates.
1 2 3 4 5 | template <typename T> bool hasDuplicateItems(vector<T> arr) { unordered_set<T> st(begin(arr), end(arr)); return st.size() != arr.size(); } |
template <typename T>
bool hasDuplicateItems(vector<T> arr) {
unordered_set<T> st(begin(arr), end(arr));
return st.size() != arr.size();
}Example:
1 2 3 | cout << (hasDuplicateItems<int>({ 1, 2, 3, 4 }) ? "true" : "false"); // true cout << (hasDuplicateItems</int><int>({ 1, 2, 3, 4, 1 }) ? "true" : "false"); // false </int> |
cout << (hasDuplicateItems<int>({ 1, 2, 3, 4 }) ? "true" : "false"); // true
cout << (hasDuplicateItems</int><int>({ 1, 2, 3, 4, 1 }) ? "true" : "false"); // false
</int>This is quite similar approach to checking the duplicates in Javascript – which is also based on the Set.
–EOF (The Ultimate Computing & Technology Blog) —
推荐阅读:5 Tips When Preparing for a Business Conference Customizing WordPress with Branda by WPMU DEV How to Blog Like Shakespeare Depth First Search Algorithm to Delete Insufficient Nodes in Roo C/C++ Program to Compute the Angle Between Hands of a Clock What Should Your Anti Virus Software Have in Order to Be Effecti The Importance of SEO and How They Improve the Number of Your Cl Learn The Basics Of Google My Business Iterative and Recursion Algorithms to Compute the Number of Step How to Check if a DLL or EXE is 32-bit or 64-bit (x86 or x64) us
- 评论列表
-
- 添加评论