小编Syd*_*ius的帖子

把while循环变成数学方程式?

我在我的程序中有两个简单的while循环,我觉得它应该是数学方程式,但我很难转换它们:

float a = someValue;
int b = someOtherValue;
int c = 0;

while (a <= -b / 2) {
    c--;
    a += b;
}
while (a >= b / 2) {
    c++;
    a -= b;
}
Run Code Online (Sandbox Code Playgroud)

这段代码按原样运行,但我觉得它可以简化为数学方程式.这里的想法是这个代码采用偏移量(someValue)并调整坐标(c)以最小化距瓷砖中心的距离(大小为someOtherValue).任何帮助,将不胜感激.

c c++ algorithm math

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

Lua中使用了大括号吗?

如果在Lua中使用大括号('{'和'}'),它们用于什么?

syntax lua

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

适用于Windows的开发人员的XML RPC GUI?

有什么样的Windows?

如果没有,测试XML RPC最简单/最快捷的方法是什么?

xml windows rpc

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

for(; true;)与while(true)不同?

如果我的理解是正确的,他们会做同样的事情.为什么有人会使用"for"变体?这只是味道吗?

编辑:我想我也在考虑(;;).

c c++

10
推荐指数
3
解决办法
2599
查看次数

在C++之后学习Java的最佳方法是什么?

我已经使用C++大约6或7年了,我认为自己能流利.到目前为止,我从未对Java感到困扰,但我发现自己失去了工作(公司陷入困境),我需要扩展我的技能.有人推荐Java,所以我想知道是否有任何关于像我这样的人可能会开始的建议.我也很想知道Java在访谈中最有可能出现的关键方面.

c++ java

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

确定在Tkinter中按下了哪个按钮?

我在学习Python的同时做了一个简单的小工具.它动态生成按钮列表:

for method in methods:
    button = Button(self.methodFrame, text=method, command=self.populateMethod)
    button.pack({'fill': 'x', 'expand': 1, 'padx': 5, 'pady': 3})
Run Code Online (Sandbox Code Playgroud)

那部分工作正常.但是,我需要知道里面按了哪个按钮self.populateMethod.关于我怎么能说出来的任何建议?

python tkinter button

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

如何从尾部而不是头部拉出可变参数模板参数?

由于愚蠢的原因,我不会进入这里,我需要注释掉的线路才能工作,而上面的线条则无法工作:

template<uint _N, typename... _Args>
struct PartialTuple;

template<uint _N, typename _Arg, typename... _Args>
struct PartialTuple<_N, _Arg, _Args...>: PartialTuple<_N-1, _Args...> {};

template<typename _Arg, typename... _Args>
struct PartialTuple<0, _Arg, _Args...>
{
    typedef std::tuple<_Arg, _Args...> type;
};

int main()
{
    // I want this to not work...
    PartialTuple<1, std::string, std::string, int, int>::type A{"test", 5, 1};

    // I want this to work...
    //PartialTuple<1, std::string, std::string, int, int>::type B{"test", "test", 5};
}
Run Code Online (Sandbox Code Playgroud)

我试着换_Arg_Args...,但(至少在GCC 4.6),将无法编译:

error: parameter pack argument ‘_Args ...’ must …
Run Code Online (Sandbox Code Playgroud)

c++ variadic-templates c++11

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

继承模板方法

我有一个类似于以下的类:

class SomeClass
{
    public:
        template<typename... Args>
        void doSomething(Args && ... args);

        //... other methods etc.
};
Run Code Online (Sandbox Code Playgroud)

但是,我真正想要的是有两种不同的SomeClass.理想情况下,我将能够从一个通用接口派生SomeOtherClass,但我需要有一个不同的实现doSomething和模板化的方法不能是虚拟的.我可以创建一个模板化的类,但是每个采用其中一个(并且有很多)的方法本身都必须是模板等.

我能够想到的最好的doSomething方法是在基类中实现两种类型,并让该方法调用一个虚方法来确定在运行时使用哪种类型.

有更好的解决方案吗?

进一步说明

我有很多方法看起来类似于:

void foo(SomeClass * obj);
Run Code Online (Sandbox Code Playgroud)

foo调用obj->doSomething,这一切都很好,但是我已经意识到我需要一种不同的SomeClass但希望它能够使用这些相同的方法,例如:

class SomeClass
{
    public:
        // This won't work
        template<typename... Args>
        virtual void doSomething(Args && ... args) = 0;

        // ... other common methods
};

class TheFirstType
{
    public:
        template<typename... Args>
        void doSomething(Args && ... args);

        // ... other specific methods …
Run Code Online (Sandbox Code Playgroud)

c++ inheritance templates c++11

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

"使用"声明可以与模板一起使用吗?

是否可以将"using"声明与模板基类一起使用?我已经读过它不在这里,但是由于技术原因还是它违反C++标准,它是否适用于gcc或其他编译器?如果不可能,为什么不呢?

示例代码(来自上面的链接):

struct A {
    template<class T> void f(T);
};

struct B : A {
    using A::f<int>;
};
Run Code Online (Sandbox Code Playgroud)

c++ gcc templates using

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

在HTML5画布中撕裂?

我正在使用HTML5 canvas元素制作一个小游戏.它工作得很好,除了它有一个滚动的背景,在Ubuntu的Firefox和Chromium浏览器中发生了明显的撕裂.我很确定它是缓冲的,因为没有任何我期望的闪烁; 只是撕裂.有没有办法在最后一次屏幕刷新后解决此问题或时间渲染?

javascript html5 canvas tearing

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