小编cuv*_*cuv的帖子

类外的静态函数

有人能告诉我在课外声明静态函数的目的是什么?这两个有什么区别?在这种情况下使用静态有什么好处吗?

static void someRandomFunction();

int main()
{
    someRandomFunction();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

void someRandomFunction();

int main()
{
    someRandomFunction();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++

40
推荐指数
3
解决办法
2万
查看次数

灰度图像中像素的质心

我正在开发一个程序,让用户在“涂鸦区域”中绘制一个数字,按下按钮,应用程序将使用神经网络分类器预测他输入的数字。

现在,为了训练神经网络,我使用了 MNIST 数据库,该数据库指定了以下内容:“来自 NIST 的图像经过尺寸标准化以适合 20x20 像素框,同时保留其纵横比 [...] 图像以 28 x 28 为中心通过计算像素的质心来获得图像”。

我面临的问题是,将用户在涂鸦区域中绘制的数字大小调整为 20 x 20 后,我需要计算像素的质心,以便将其居中28 x 28 图像。

我该如何计算?

c++ machine-learning mnist

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

std :: string&vs boost :: string_ref

它的问题了,如果我使用boost::string_refstd::string&?我的意思是,boost::string_ref当你处理字符串时,使用std版本真的更有效吗?我真的没有得到这里提供的解释:http://www.boost.org/doc/libs/1_61_0/libs/utility/doc/html/string_ref.html.让我感到困惑的是这个事实std::string也是一个只指向已分配内存的句柄类,而且由于c ++ 11,使用移动语义,上面文章中提到的复制操作不会发生.那么,哪一个更有效率?

c++ boost c++11

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

在C中链接位移运算符后出现意外结果

我无法弄清楚为什么链接位移操作不会返回与不链接它们相同的结果.

#include <stdio.h>

void bit_manip_func(unsigned char byte)
{
    unsigned char chain = (((byte >> 3) << 7) >> 3);
    printf("%d\n", chain); //this prints 144

    unsigned char o1 = byte >> 3;
    unsigned char o2 = o1 << 7;
    unsigned char o3 = o2 >> 3;
    printf("%d\n", o3); //this prints 16 as expected
}

int main()
{
    //expecting both printf's to print
    //the same value (16).
    bit_manip_func(73);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我期待这两个printf调用打印出来16因为二进制中的73是0100 1001.申请后byte >> 3我应该得到0000 1001,(byte >> …

c bit-shift

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

即使使用-fno-elide-constructors进行编译,似乎也会出现复制省略

#include <iostream>

class A {
public:
    A() { std::cout << "Constructor" << std::endl; }
    A(const A& a) { std::cout << "Copy Constructor" << std::endl; }
    A& operator=(const A& a) { std::cout << "Copy = operator" << std::endl; }
    A(A&& a) { std::cout << "Move Constructor" << std::endl; }
    A& operator=(A&& a) { std::cout << "Move = operator" << std::endl; }
    ~A() { std::cout << "Destructor" << std::endl; }
};

void f(A&& a) { std::cout << "function" << std::endl; }

int …
Run Code Online (Sandbox Code Playgroud)

c++ move-semantics copy-elision c++11

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