示例#1
0
文件: Hash.hpp 项目: denghe/69net
 Hash<TK>::Hash( int capacity /*= 64 */ )
 {
     pool.Init( sizeof( Node ), 4096, capacity );
     int prime = GetPrime( capacity );
     nodes.Reserve( prime );
     buckets.Resize( prime );
 }
示例#2
0
文件: Hash.hpp 项目: denghe/69net
 void Hash<TK>::Resize()
 {
     int prime = GetPrime( nodes.Size() * 3 );
     nodes.Reserve( prime );
     buckets.Resize( prime, false );
     memset( buckets.Data(), 0, buckets.ByteSize() );      // clean up
     for( int i = 0; i < nodes.Size(); ++i )
     {
         auto& o = nodes[ i ];
         auto mod = o->hash % prime;
         o->next = buckets[ mod ];
         buckets[ mod ] = o;
     }
 }
示例#3
0
文件: Hash.hpp 项目: denghe/69net
 void Hash<TK>::Reserve( int capacity )
 {
     if( capacity <= buckets.Size() ) return;
     int prime = GetPrime( (int)Round2n( capacity ) );
     nodes.Reserve( prime );
     buckets.Resize( prime, false );
     memset( buckets.Data(), 0, buckets.ByteSize() );      // clean up
     for( int i = 0; i < nodes.Size(); ++i )
     {
         auto& o = nodes[ i ];
         auto mod = o->hash % prime;
         o->next = buckets[ mod ];
         buckets[ mod ] = o;
     }
 }
示例#4
0
	void solve(void) {
		Input();
		GetPrime();
		Work();
		Pow2();
	}
示例#5
0
文件: ex4.c 项目: harryKong/CSE333
int main(int argc, char **argv) {
  printf("The 10th prime is: %" PRIu64 "\n", GetPrime(10));
  printf("The 168th prime is: %" PRIu64 "\n", GetPrime(168));
  printf("The 1000th prime is: %" PRIu64 "\n", GetPrime(1000));
  return EXIT_SUCCESS;
}