Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c++ > #6906

Re: Conversion of a number from string to vector<int>

From Anonymous <anonymous@no.net>
Newsgroups comp.lang.c++
Subject Re: Conversion of a number from string to vector<int>
Date 2011-06-19 12:19 +0200
Organization Aioe.org NNTP Server
Message-ID <itkig0$ook$1@speranza.aioe.org> (permalink)
References <itip2s$nkn$1@speranza.aioe.org> <EI6Lp.4092$NX1.725@newsfe18.ams2> <4dfd93f0$0$2848$7b1e8fa0@news.nbl.fi> <EahLp.7555$Ll1.6425@newsfe24.ams2>

Show all headers | View raw


Paul ha scritto:
> He seems to be trying to convert a string to an int, this is what atoi 
> does.
> What is incompetent about trying to provide a helpfull suggestion?

Basically, I am improving a constructor for big integers passed as 
strings by the user. The class provides basic math operations in 
arbitrary precision. It is everything done. When I implemented the 
constructor initially, every char of the string was a digit in a 
vector<char>. This was not really efficient. Factorial("1000") required 
about 70s on my machine. So I decided to "group" more chars into ints, 
as (almost) many chars as possible, that is by building a vector<int> 
from the given number. This actually is 7 times faster than before, but 
is still not perfect, since not all the possible bits of the integers 
are used. The reason is that each digit in the vector<int> is in base B, 
where B is a power of 10, not of two:

class BIGINT {
     // Bitset must be signed (for diff. operation).
     typedef signed int Bitset;

     // vector is 25 times faster than list or twice than deque.
     typedef std::vector<Bitset> Sequence;

     // -1 to avoid overflows in sum.
     static const int DGTS = std::numeric_limits<Bitset>::digits10 - 1;

     BIGINT(const char* p = 0) {
	// ...
         size_t l = strlen(p);
         for (size_t i = 0; i < l;) {
             Bitset x = 0, f = 1;
             for (int j = 0; j < DGTS && i < l; j++, i++, f *= 10)
                 x += (p[l - i - 1] - '0') * f;
             module.push_back(x);
         }
	// ...
     }
}

Back to comp.lang.c++ | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Conversion of a number from string to vector<int> Anonymous <anonymous@no.net> - 2011-06-18 19:59 +0200
  Re: Conversion of a number from string to vector<int> "Paul" <pchristor@yahoo.co.uk> - 2011-06-18 20:08 +0100
    Re: Conversion of a number from string to vector<int> Anonymous <anonymous@no.net> - 2011-06-18 23:55 +0200
      Re: Conversion of a number from string to vector<int> Victor Bazarov <v.bazarov@comcast.invalid> - 2011-06-18 18:26 -0400
    Re: Conversion of a number from string to vector<int> Juha Nieminen <nospam@thanks.invalid> - 2011-06-19 06:15 +0000
      Re: Conversion of a number from string to vector<int> "Paul" <pchristor@yahoo.co.uk> - 2011-06-19 08:02 +0100
        Re: Conversion of a number from string to vector<int> Anonymous <anonymous@no.net> - 2011-06-19 12:19 +0200
          Re: Conversion of a number from string to vector<int> "Paul" <pchristor@yahoo.co.uk> - 2011-06-19 16:07 +0100
            Re: Conversion of a number from string to vector<int> Anonymous <anonymous@no.net> - 2011-06-19 17:50 +0200
            Re: Conversion of a number from string to vector<int> Juha Nieminen <nospam@thanks.invalid> - 2011-06-20 06:12 +0000
              Re: Conversion of a number from string to vector<int> "Paul" <pchristor@yahoo.co.uk> - 2011-06-20 09:57 +0100
        Re: Conversion of a number from string to vector<int> Juha Nieminen <nospam@thanks.invalid> - 2011-06-20 06:09 +0000
          Re: Conversion of a number from string to vector<int> "Paul" <pchristor@yahoo.co.uk> - 2011-06-20 09:48 +0100
          Re: Conversion of a number from string to vector<int> Ian Collins <ian-news@hotmail.com> - 2011-06-20 20:59 +1200
            Re: Conversion of a number from string to vector<int> "Paul" <pchristor@yahoo.co.uk> - 2011-06-20 10:17 +0100
              Re: Conversion of a number from string to vector<int> Lasse Reichstein Nielsen <lrn.unread@gmail.com> - 2011-06-20 22:47 +0200
                Re: Conversion of a number from string to vector<int> "Paul" <pchristor@yahoo.co.uk> - 2011-06-20 22:05 +0100
  Re: Conversion of a number from string to vector<int> Ian Collins <ian-news@hotmail.com> - 2011-06-19 08:35 +1200
  Re: Conversion of a number from string to vector<int> Juha Nieminen <nospam@thanks.invalid> - 2011-06-19 06:23 +0000
    Re: Conversion of a number from string to vector<int> Kai-Uwe Bux <jkherciueh@gmx.net> - 2011-06-19 12:14 +0200
    Re: Conversion of a number from string to vector<int> Anonymous <anonymous@no.net> - 2011-06-19 13:13 +0200
      Re: Conversion of a number from string to vector<int> Pete Becker <pete@versatilecoding.com> - 2011-06-19 11:42 -0400
        Re: Conversion of a number from string to vector<int> "Paul" <pchristor@yahoo.co.uk> - 2011-06-19 20:54 +0100
        Re: Conversion of a number from string to vector<int> Anonymous <anonymous@no.net> - 2011-06-19 23:06 +0200
          Re: Conversion of a number from string to vector<int> Pete Becker <pete@versatilecoding.com> - 2011-06-19 17:18 -0400
          Re: Conversion of a number from string to vector<int> "Paul" <pchristor@yahoo.co.uk> - 2011-06-20 00:11 +0100
            Re: Conversion of a number from string to vector<int> "Paul" <pchristor@yahoo.co.uk> - 2011-06-20 00:32 +0100
    Re: Conversion of a number from string to vector<int> Juha Nieminen <nospam@thanks.invalid> - 2011-06-20 06:18 +0000
  Re: Conversion of a number from string to vector<int> Sam <sam@email-scan.com> - 2011-06-21 06:05 -0500

csiph-web