How to get random value and insert a value into a vector if not exists in C++

1 Answer

0 votes
#include <iostream>
#include <algorithm>
#include <vector>

class ASet {
public:
    std::vector<int> vec;
    ASet() {
        srand(time(NULL));
    }
    
    bool insert(int val) {
        if (find(vec.begin(), vec.end(), val) == vec.end()) {
            vec.push_back(val);
            return true;
        }
        return false;
    }

    int getRandom() {
        int r = rand() % vec.size();
        return vec[r];
    }
};

int main()
{
    ASet* st = new ASet();
    
    st->insert(99);
    st->insert(3);
    st->insert(6);
    st->insert(1);
    st->insert(18);
    
    std::cout << st->getRandom() << "\n";
    std::cout << st->getRandom() << "\n";
    
    delete st;
}




/*
run:

18
3

*/

 



answered Jul 8, 2023 by avibootz

Related questions

1 answer 233 views
3 answers 176 views
3 answers 181 views
1 answer 220 views
...