小编Mor*_*ten的帖子

快速整数平方根近似

我目前正在寻找一个非常快的整数平方根近似值,其中 floor(sqrt(x)) <= veryFastIntegerSquareRoot(x) <= x

平方根例程用于计算素数,如果仅sqrt(x)检查小于或等于 的值是否为 的除数,则计算速度会快得多x

我目前拥有的是来自 Wikipedia 的这个函数,稍微调整了一下以使用 64 位整数。

因为我没有其他函数可以比较(或者更准确地说,该函数对于我的目的来说太精确了,而且它可能需要更多的时间,而不是高于实际结果。)

c square-root

5
推荐指数
2
解决办法
6267
查看次数

删除了未使用的类

我有以下代码:

namespace rm {
  namespace lib {
    class Object {
    public:
      Object() {printf("Hi\n");}
    };
  }
}
Run Code Online (Sandbox Code Playgroud)

现在我想用g++ -Wall -Wno-unused -Werror -fPIC -g -Iinclude/ -c -O0 -o object.o object.cpp和编译一个共享库g++ --shared -o librm.so object.o.编译工作没有问题,但在检查结果库后nm librm.so | c++filt,rm::lib::Object::Object()无处可寻.即使启用-Wextra,GCC也不会发出警告.

G ++版本是(Raspbian 4.9.2-10)4.9.2

c++ gcc g++4.9

1
推荐指数
1
解决办法
208
查看次数

运算符类型ifstream和double不匹配operator >>

我有运算符重载的问题.我有一个名为的类Point1,定义为

class Point1 {
private:
    long double x;
public:
    Point1(): x(0) {}
    Point1(long double val): x(val) {}
    Point1(Point1 & val): x(val.x) {}
    //Some functions omitted
    friend ofstream& operator<< (ofstream&, const Point1&);
    friend ifstream& operator>> (ifstream&, Point1&);
};
Run Code Online (Sandbox Code Playgroud)

这个类正在工作,为其执行operator>>(ifstream&, Point1&);,其功能主体是:

double tmp;
in >> tmp; //In this line g++ breaks with an error
pnt.x=tmp;
return in;
Run Code Online (Sandbox Code Playgroud)

我在debian测试中使用gcc 4.9.3(armv7l).完整的源代码可以在这里找到:http://hastebin.com/igunaquxiw.cpp

c++

-2
推荐指数
1
解决办法
846
查看次数

标签 统计

c++ ×2

c ×1

g++4.9 ×1

gcc ×1

square-root ×1