classRandomizedSet{private:unordered_map<int,int>dict;vector<int>listing;public:RandomizedSet(){}boolinsert(intval){if(dict.count(val)){returnfalse;}dict[val]=listing.size();listing.emplace_back(val);returntrue;}boolremove(intval){if(!dict.count(val)){returnfalse;}intindex=dict[val];intlastElement=listing.back();listing[index]=lastElement;dict[lastElement]=index;listing.pop_back();dict.erase(val);returntrue;}intgetRandom(){intrandomIndex=rand()%listing.size();returnlisting[randomIndex];}};/** * Your RandomizedSet object will be instantiated and called as such: * RandomizedSet* obj = new RandomizedSet(); * bool param_1 = obj->insert(val); * bool param_2 = obj->remove(val); * int param_3 = obj->getRandom(); */