problemscpp
A collection of my answers to algorithm problems in c++.
Public 成员函数 | Private 属性 | 所有成员列表
leetcode::insert_delete_getrandom_o1::RandomizedSet类 参考

#include <leetcode.h>

Public 成员函数

 RandomizedSet ()
 Initializes the RandomizedSet object. 更多...
 
int getRandom ()
 Returns a random element from the current set of elements (it's guaranteed that at least one element exists when this method is called). Each element must have the same probability of being returned. 更多...
 
bool insert (int val)
 Inserts an item val into the set if not present. 更多...
 
bool remove (int val)
 Removes an item val from the set if present. 更多...
 

Private 属性

uniform_int_distribution< int > distribution
 
default_random_engine generator
 
unordered_map< int, int > map
 
vector< int > nums
 

详细描述

在文件 leetcode.h2217 行定义.

构造及析构函数说明

◆ RandomizedSet()

leetcode::insert_delete_getrandom_o1::RandomizedSet::RandomizedSet ( )

Initializes the RandomizedSet object.

在文件 leetcode.cpp5959 行定义.

5959 {
5960 generator = default_random_engine(time(nullptr));
5961 distribution = uniform_int_distribution(0, INT_MAX);
5962 }
uniform_int_distribution< int > distribution
Definition: leetcode.h:2221

引用了 distribution , 以及 generator.

成员函数说明

◆ getRandom()

int leetcode::insert_delete_getrandom_o1::RandomizedSet::getRandom ( )

Returns a random element from the current set of elements (it's guaranteed that at least one element exists when this method is called). Each element must have the same probability of being returned.

在文件 leetcode.cpp5986 行定义.

引用了 distribution, generator , 以及 nums.

◆ insert()

bool leetcode::insert_delete_getrandom_o1::RandomizedSet::insert ( int  val)

Inserts an item val into the set if not present.

返回
Returns true if the item was not present, false otherwise.

在文件 leetcode.cpp5964 行定义.

5964 {
5965 if(static_cast<unsigned int>(map.contains(val)) != 0U) {
5966 return false;
5967 }
5968 nums.push_back(val);
5969 map[val] = nums.size() - 1;
5970 return true;
5971 }

引用了 map , 以及 nums.

◆ remove()

bool leetcode::insert_delete_getrandom_o1::RandomizedSet::remove ( int  val)

Removes an item val from the set if present.

返回
Returns true if the item was present, false otherwise.

在文件 leetcode.cpp5973 行定义.

5973 {
5974 if(static_cast<unsigned int>(map.contains(val)) == 0U) {
5975 return false;
5976 }
5977 const int index = map[val];
5978 const int last = nums.back();
5979 nums[index] = last;
5980 map[last] = index;
5981 nums.pop_back();
5982 map.erase(val);
5983 return true;
5984 }

引用了 map , 以及 nums.

类成员变量说明

◆ distribution

uniform_int_distribution<int> leetcode::insert_delete_getrandom_o1::RandomizedSet::distribution
private

在文件 leetcode.h2221 行定义.

被这些函数引用 RandomizedSet() , 以及 getRandom().

◆ generator

default_random_engine leetcode::insert_delete_getrandom_o1::RandomizedSet::generator
private

在文件 leetcode.h2220 行定义.

被这些函数引用 RandomizedSet() , 以及 getRandom().

◆ map

unordered_map<int, int> leetcode::insert_delete_getrandom_o1::RandomizedSet::map
private

在文件 leetcode.h2218 行定义.

被这些函数引用 insert() , 以及 remove().

◆ nums

vector<int> leetcode::insert_delete_getrandom_o1::RandomizedSet::nums
private

在文件 leetcode.h2219 行定义.

被这些函数引用 getRandom(), insert() , 以及 remove().


该类的文档由以下文件生成: