0

hard question

How do you delete all the duplicates in the areay? Assume there are 10 integers in the array(numbers could repeat), what algorithm should i use to make sure all the numbers appear only once.

20th Jul 2017, 12:12 AM
Benson Tan
Benson Tan - avatar
1 Antwort
+ 2
Sounds like what you really want to use is a set. A set doesn't allow duplicates. If you need to convert an array to a set here is some example code. #include <iostream> #include <set> using namespace std; int main() { int arr[] = {1,2,3,4,5,5,6,4,6,7,8}; set<int> s(begin(arr), end(arr)); for(set<int>::iterator it = s.begin(); it != s.end(); ++it) { cout << *it << endl; } return 0; } If you just want to use a set outright: #include <iostream> #include <set> using namespace std; int main() { set<int> s{1,2,3,4,5,6,7,8,9,2,3,4,5}; //initialize with curly braces for(set<int>::iterator it = s.begin(); it != s.end(); ++it) { cout << *it << endl; } return 0; } OR: #include <iostream> #include <set> using namespace std; int main() { set<int> s; s.insert(1); s.insert(2); s.insert(3); s.insert(4); s.insert(2); // won't be added to set s.insert(4); // won't be added to set s.insert(3); // won't be added to set for(set<int>::iterator it = s.begin(); it != s.end(); ++it) { cout << *it << endl; } return 0; }
20th Jul 2017, 1:49 AM
ChaoticDawg
ChaoticDawg - avatar