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

#include <leetcode.h>

Public 成员函数

 Bitset (int size)
 用 size 个位初始化 Bitset ,所有位都是 0 。 更多...
 
bool all () const
 检查 Bitset 中 每一位 的值是否都是 1 。如果满足此条件,返回 true ;否则,返回 false 。 更多...
 
int count () const
 返回 Bitset 中值为 1 的位的 总数 。 更多...
 
void fix (int idx) const
 将下标为 idx 的位上的值更新为 1 。如果值已经是 1 ,则不会发生任何改变。 更多...
 
void flip ()
 翻转 Bitset 中每一位上的值。换句话说,所有值为 0 的位将会变成 1 ,反之亦然。 更多...
 
bool one () const
 检查 Bitset 中 是否 至少一位 的值是 1 。如果满足此条件,返回 true ;否则,返回 false 。 更多...
 
string toString () const
 返回 Bitset 的当前组成情况。注意,在结果字符串中,第 i 个下标处的字符应该与 Bitset 中的第 i 位一致。 更多...
 
void unfix (int idx) const
 将下标为 idx 的位上的值更新为 0 。如果值已经是 0 ,则不会发生任何改变。 更多...
 

Private 属性

set< unsigned int > * one1
 
int size = 0
 
set< unsigned int > * zero0
 

详细描述

在文件 leetcode.h974 行定义.

构造及析构函数说明

◆ Bitset()

leetcode::design_bitset::Bitset::Bitset ( int  size)
explicit

用 size 个位初始化 Bitset ,所有位都是 0 。

在文件 leetcode.cpp2458 行定义.

2458 {
2459 this->size = size;
2460 one1 = new set<unsigned int>();
2461 zero0 = new set<unsigned int>();
2462 for(int i = 0; i < size; i++) {
2463 zero0->insert(i);
2464 }
2465 }
set< unsigned int > * zero0
Definition: leetcode.h:977
set< unsigned int > * one1
Definition: leetcode.h:976

引用了 one1, size , 以及 zero0.

成员函数说明

◆ all()

bool leetcode::design_bitset::Bitset::all ( ) const

检查 Bitset 中 每一位 的值是否都是 1 。如果满足此条件,返回 true ;否则,返回 false 。

在文件 leetcode.cpp2483 行定义.

2483{ return zero0->empty(); }

引用了 zero0.

◆ count()

int leetcode::design_bitset::Bitset::count ( ) const

返回 Bitset 中值为 1 的位的 总数 。

在文件 leetcode.cpp2487 行定义.

2487{ return one1->size(); }

引用了 one1.

◆ fix()

void leetcode::design_bitset::Bitset::fix ( int  idx) const

将下标为 idx 的位上的值更新为 1 。如果值已经是 1 ,则不会发生任何改变。

在文件 leetcode.cpp2467 行定义.

2467 {
2468 zero0->erase(idx);
2469 one1->insert(idx);
2470 }

引用了 one1 , 以及 zero0.

◆ flip()

void leetcode::design_bitset::Bitset::flip ( )

翻转 Bitset 中每一位上的值。换句话说,所有值为 0 的位将会变成 1 ,反之亦然。

在文件 leetcode.cpp2477 行定义.

2477 {
2478 auto *const tmp = one1;
2479 one1 = zero0;
2480 zero0 = tmp;
2481 }

引用了 one1 , 以及 zero0.

◆ one()

bool leetcode::design_bitset::Bitset::one ( ) const

检查 Bitset 中 是否 至少一位 的值是 1 。如果满足此条件,返回 true ;否则,返回 false 。

在文件 leetcode.cpp2485 行定义.

2485{ return !one1->empty(); }

引用了 one1.

◆ toString()

string leetcode::design_bitset::Bitset::toString ( ) const

返回 Bitset 的当前组成情况。注意,在结果字符串中,第 i 个下标处的字符应该与 Bitset 中的第 i 位一致。

在文件 leetcode.cpp2489 行定义.

2489 {
2490 auto oss = ostringstream();
2491 auto c1 = one1->begin();
2492 auto c0 = zero0->begin();
2493 for(int i = 0; i < size; i++) {
2494 if(c1 != one1->end() && *c1 == i) {
2495 oss << 1;
2496 ++c1;
2497 } else if(c0 != zero0->end() && *c0 == i) {
2498 oss << 0;
2499 ++c0;
2500 }
2501 }
2502 return oss.str();
2503 }

引用了 one1, size , 以及 zero0.

◆ unfix()

void leetcode::design_bitset::Bitset::unfix ( int  idx) const

将下标为 idx 的位上的值更新为 0 。如果值已经是 0 ,则不会发生任何改变。

在文件 leetcode.cpp2472 行定义.

2472 {
2473 zero0->insert(idx);
2474 one1->erase(idx);
2475 }

引用了 one1 , 以及 zero0.

类成员变量说明

◆ one1

set<unsigned int>* leetcode::design_bitset::Bitset::one1
private

在文件 leetcode.h976 行定义.

被这些函数引用 Bitset(), count(), fix(), flip(), one(), toString() , 以及 unfix().

◆ size

int leetcode::design_bitset::Bitset::size = 0
private

在文件 leetcode.h975 行定义.

被这些函数引用 Bitset() , 以及 toString().

◆ zero0

set<unsigned int>* leetcode::design_bitset::Bitset::zero0
private

在文件 leetcode.h977 行定义.

被这些函数引用 Bitset(), all(), fix(), flip(), toString() , 以及 unfix().


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