小编zou*_*yjs的帖子

这里不是const修饰符吗?

" Effective C++ "第3项说"尽可能使用const",它给出了一个例子:

const Rational operator*(const Rational& lhs, 
                            const Rational& rhs);
Run Code Online (Sandbox Code Playgroud)

防止客户端犯下这样的暴行:

Rational a, b, c;
...
(a * b) = c;   // invoke operator= on the result of a*b!
Run Code Online (Sandbox Code Playgroud)

但是,函数的非参考返回值是否已经是一个rvalue?那么为什么还要这么做呢?

c++ coding-style const rvalue c++11

45
推荐指数
3
解决办法
3110
查看次数

在python解释器中挂起全局名称查找

这是事情,我有一个代理控制远程模块的引用,我把这些代理中的一些放在sys.modules这样我可以像本地模块一样使用它.但是一些其他对象放在__builtin__远程环境的模块中(就像一个魔术变量,以方便调试或引用).我不想引用这些变量conn.__builtin__.var,我必须要么替换本地__builtin__(这似乎不适用于替换sys.modules['__builtin__']或挂钩全局名称查找规则.如何?对于一个模块,你可以重载一个getattr来做这个.但是在一个交互式翻译中,如IPython谁是主要模块或如何做到这一点? 更新:正如@Nizam Mohamed指出的那样,是的,我可以得到__main__ 模块,但我仍然无法修改它的名称查找角色.

我想完全将本地环境变为远程环境(用于调试控制台)

UPDATE

现在我只是迭代所有的__builtin__.__dict__,如果有一个不在本地的名称__builtin__.我将名称添加到本地__builtin__.但是,与名称查找规则相比,它不是那么动态,如果我在本地找不到该名称,请__builtin__尝试远程名称.

是一个类似的讨论.

这个问题通过用一个对象替换它来模拟模块sys.modules.但这对于__builtin__名称查找不起作用,我也尝试__builtin__.__getattribute__用自定义的一个替换,首先使用原始查找,然后在失败时使用自定义查找.但是__builtin__从未调用过__builtin__.__getattribute__偶数的全局名称查找__builtin__.__getattribute__('name')返回所需的值,__builtin__.name或者name永远不会返回一个.

python ipython python-import rpyc

23
推荐指数
2
解决办法
1045
查看次数

使用r设置x轴的间隔

我绘制了一个景点的访问时间分布,从一天0到23小时.我想调整x轴的间隔,让所有小时都显示出来.我怎样才能做到这一点?

d = c(42,13,10,3,2,6,7,15,38,63,128,153,178,181,236,217,272,417,526,653,607,385,191,70)
plot(seq(0,23,by=1),c,type='b',col='red',main="Confucius Temple",xlab="Hours",ylab="Numbers of check-in")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

plot r

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

android ndk gdb加载的sharedlibraries缺少*.oat

调试我的设备时,gdb 7.7和7.11都错过了一些共享库(oppo r7s).我把所有图书馆都搬到了当地.这是一个完整的库列表info shared

(gdb) info shared
From        To          Syms Read   Shared Object Library
0x40000980  0x40009640  Yes (*)     Z:\program\program\target\android_RelWithDebInfo\obj\local\armeabi-v7a\linker
0x401c7940  0x401ce6e8  Yes (*)     Z:\program\program\target\android_RelWithDebInfo\obj\local\armeabi-v7a\libutils.so
                        No          libstdc++.so
                        No          libm.so
0x4013bbb0  0x4017329c  Yes (*)     Z:\program\program\target\android_RelWithDebInfo\obj\local\armeabi-v7a\libc.so
                        No          libbinder.so
                        No          liblog.so
                        No          libhardware.so
                        No          libcutils.so
                        No          libc++.so
                        No          libLLVM.so
                        No          libbcinfo.so
                        No          libunwind.so
                        No          libz.so
                        No          libpng.so
                        No          libpowermanager.so
                        No          libcommon_time_client.so
                        No          libstlport.so
                        No          libui.so
                        No          libsync.so
                        No          libgui.so
                        No          libft2.so
                        No          libbcc.so
                        No          libGLESv2.so
                        No          libGLESv1_CM.so
                        No          libEGL.so
                        No          libunwind-ptrace.so …
Run Code Online (Sandbox Code Playgroud)

android gdb android-ndk gdbserver

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

select用户在mysql中有多个不同的记录

对于包含用户网页访问行为记录的表,如何选择访问多个网页的用户.

这个表的结构是:

userId        webpageId       visitTime
  0              123            ...
  0              124            ...
  1              123            ...
 ...             ...            ...
Run Code Online (Sandbox Code Playgroud)

我可以算一下:

SELECT userId, COUNT(DISTINCT webpageId) AS count FROM visits GROUP BY userId;
Run Code Online (Sandbox Code Playgroud)

它给我的结果如下:

userId          count
  0               2
  1               1
  2               6
 ...             ...
Run Code Online (Sandbox Code Playgroud)

如何执行查询,给出最终结果,如:

userId
  0
  2
 ...
Run Code Online (Sandbox Code Playgroud)

每个用户都访问多个DISTINCT网页

mysql sql select

17
推荐指数
2
解决办法
4万
查看次数

'this'是否可以指向C++中对象的开头?

我想使用fwrite将对象写入顺序文件.班级就像

class A{
    int a;
    int b;
public:
    //interface
}
Run Code Online (Sandbox Code Playgroud)

当我将一个对象写入文件时 我在游荡,我可以fwrite( this, sizeof(int), 2, fo)用来编写前两个整数.

问题是:即使this在对象的最开头存在虚拟表,也保证指向对象数据的开始.所以上面的操作是安全的.

c++

10
推荐指数
2
解决办法
240
查看次数

使用c ++将二进制文件(jpg)读取为字符串

我需要将jpg文件读取为字符串.我想将此文件上传到我们的服务器,我只是发现API需要一个字符串作为此图片的数据.我在之前的问题中遵循了这些建议,我已经使用c ++将上传图片到服务器.

int main() {
    ifstream fin("cloud.jpg");
    ofstream fout("test.jpg");//for testing purpose, to see if the string is a right copy
    ostringstream ostrm;

    unsigned char tmp;
    int count = 0;
    while ( fin >> tmp ) {
        ++count;//for testing purpose
        ostrm << tmp;
    }
    string data( ostrm.str() );
    cout << count << endl;//ouput 60! Definitely not the right size
    fout << string;//only 60 bytes
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

为什么它停在60?60岁时这是一个奇怪的角色,我该怎么做才能将jpg读成一个字符串?

UPDATE

几乎在那里,但在使用建议的方法后,当我将字符串重写为输出文件时,它会失真.发现我还应该指定ofstream处于二进制模式ofstream::binary.完成!

那么ifstream::binary&之间的区别ios::binary是什么 …

c++ file-io file-upload

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

直接初始化和复制初始化参考

我一直在阅读"C++入门".对于对象的初始化,C++支持两种形式的初始化:直接和复制.但本书并未参考初始化参考.在书中我从未见过直接初始化(如果存在)引用.一切都像副本一样:

int i;
int &j = i;//but not int &j(i);which also works in my experiment
Run Code Online (Sandbox Code Playgroud)

我想知道它是在下面进行的初始化参考.对于以下代码:

string null_book = "9-999-99999-9";
Run Code Online (Sandbox Code Playgroud)

初始化进程首先创建一个临时string对象TMP(例如),将直接与AC风格字符串参数初始化,然后初始化变量null_book与拷贝构造函数.这对我来说很有意义.对于这一个:

int &j = i;
Run Code Online (Sandbox Code Playgroud)

ref ref会以同样的方式初始化吗?那将是一个临时引用它&t(例如)由i初始化然后用t初始化j?这没有意义??? 为什么书从不使用直接初始化作为参考?感谢您的关注!

c++

7
推荐指数
2
解决办法
527
查看次数

你的字符串是否与'string'相同.代码('XXX')

虽然标题是一个问题,但简短的答案显然是否定的.我试过shell.真正的问题是为什么?ps:string是一些非ascii字符,如中文,XXX是当前的字符串编码

>>> u'??' == '??'.decode('gbk')
False
//The first one is u'\xd6\xd0\xce\xc4' while the second one u'\u4e2d\u6587'
Run Code Online (Sandbox Code Playgroud)

上面的例子如上.我正在使用windows简体中文.默认编码是gbk,python shell也是.我得到了两个unicode对象不相等.

更新

a = '??'.decode('gbk')
>>> a
u'\u4e2d\u6587'
>>> print a
??

>>> b = u'??'
>>> print b
ÖÐÎÄ
Run Code Online (Sandbox Code Playgroud)

python unicode decode

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

推导出具有默认模板参数的模板函数指针的模板参数

虽然这个问题似乎有点令人困惑。代码很简单:

template <typename T>
void tfunc(T&& getter)
{

}

template <typename T = void>
void voidfunc()
{}

int main() {
    tfunc(&voidfunc);   // error: could not deduce template argument for 'T'
    tfunc(&voidfunc<int>); // ok
    voidfunc(); // calling using default template parameter is ok.
}
Run Code Online (Sandbox Code Playgroud)

clang 11 和 msvc Visual Studio 2019 16.7 都抱怨错误。为什么我需要明确指定模板参数。

背景

  • 该参数是一个虚拟参数,只是为了延迟voidfunc到使用它的地方的实例化。类型并不重要。
  • &voidfunc由 clangAST 生成的一些代码使用,否则我需要调整生成器来编写&voidfuc<>它是否是模板。
  • __declspec(property(put=voidfunc))然而,这个 clang/msvc 扩展需要voidfunc但不是voidfunc<>

&voidfunc<>如果给定的函数是模板,我已经调整了生成器以输出@Jarod42 所说的。它现在有效。

c++ templates language-lawyer c++17 c++20

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