小编Alb*_*ert的帖子

Python:从某些列表中获取最多N个元素

是否有某些功能可以从一些列表中返回N个最高元素?

即如果max(l)返回单个最高元素,那么.就像max(l, count=10)会给我一个10个最高数字的列表(如果l更小则更少).

或者什么是一个有效的简单方法来获得这些?(除了明显的规范实现;也没有涉及首先对整个列表进行排序的事情,因为与规范解决方案相比,这将是低效的.)

python max

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

如何在Qt,GCD风格的给定线程中执行仿函数或lambda?

在带有GCD的ObjC中,有一种在旋转事件循环的任何线程中执行lambda的方法.例如:

dispatch_sync(dispatch_get_main_queue(), ^{ /* do sth */ });
Run Code Online (Sandbox Code Playgroud)

要么:

dispatch_async(dispatch_get_main_queue(), ^{ /* do sth */ });
Run Code Online (Sandbox Code Playgroud)

[]{ /* do sth */ }在主线程的队列中执行某些操作(相当于在C++中),阻塞或异步.

我怎么能在Qt中做同样的事情?

从我所读到的,我想解决方案将以某种方式向主线程的某个对象发送信号.但是什么对象呢?只是QApplication::instance()?(那是那时生活在主线程中的唯一对象.)什么信号?


从目前的答案和我目前的研究来看,似乎我需要一些虚拟对象来坐在主线程中,有一些插槽只是等待进入某些代码来执行.

所以,我决定使用子类QApplication来添加它.我目前的代码,但不起作用(但也许你可以帮忙):

#include <QApplication>
#include <QThread>
#include <QMetaMethod>
#include <functional>
#include <assert.h>

class App : public QApplication
{
    Q_OBJECT

public:
    App();

signals:

public slots:
    void genericExec(std::function<void(void)> func) {
        func();
    }

private:
    // cache this
    QMetaMethod genericExec_method;
public:
    void invokeGenericExec(std::function<void(void)> func, Qt::ConnectionType connType) {
        if(!genericExec_method) {
            QByteArray normalizedSignature = QMetaObject::normalizedSignature("genericExec(std::function<void(void)>)");
            int …
Run Code Online (Sandbox Code Playgroud)

c++ qt multithreading

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

Java:如何从String中获取Iterator <Character>

我需要Iterator<Character>一个String物体.Java中是否有任何可用的功能可以为我提供这个功能,还是我必须编写自己的代码?

java string iterator

33
推荐指数
3
解决办法
4万
查看次数

不同编译器中的pure/const函数属性

pure是一个函数属性,表示函数不会修改任何全局内存.
const是一个函数属性,表示函数不读取/修改任何全局内存.

鉴于该信息,编译器可以进行一些额外的优化.

GCC示例:

float sigmoid(float x) __attribute__ ((const));

float calculate(float x, unsigned int C) {
    float sum = 0;
    for(unsigned int i = 0; i < C; ++i)
        sum += sigmoid(x);
    return sum;
}

float sigmoid(float x) { return 1.0f / (1.0f - exp(-x)); }
Run Code Online (Sandbox Code Playgroud)

在该示例中,编译器可以将函数计算优化为:

float calculate(float x, unsigned int C) {
    float sum = 0;
    float temp = C ? sigmoid(x) : 0.0f;
    for(unsigned int i = 0; i < C; ++i)
        sum …
Run Code Online (Sandbox Code Playgroud)

c++ gcc const function-attributes

32
推荐指数
2
解决办法
8710
查看次数

gdb:显示某些数据的typeinfo

基本上,我想得到typeid(*this).name(),即真正的类型this.

我想在GDB中得到它(不修改源代码).我尝试过,print typeid(*this)但它说typeid未知(因为我没有把它包含在源文件中).

c++ gdb typeid typeinfo

31
推荐指数
4
解决办法
3万
查看次数

Python中的`goto`

我必须goto在Python中使用.我发现了托管,goto但我的Python实现(Mac上的CPython 2.7.1)没有这个模块,所以它似乎不是可移植的.它应该至少适用于支持CPython字节码的所有Python实现(特别是我关心CPython和PyPy).然后有这个相关的问题,和cdjc的goto.以下是答案给出的.

我可以手动构建字节码(即编写我自己的Python编译器)因为有这样的指令(JUMP_ABSOLUTE和朋友).但我想知道是否有更简单的方法.是否可以通过inspect左右来调用单个字节码指令?我还想过通过Python编译然后自动修补生成的Python字节码.


当然,如果我不解释为什么我真的需要这个,人们会问为什么,不会给我任何有用的答案.所以简而言之我的用例:我正在将一个C AST翻译成Python AST并编译它.我可以用某种方式将每个逻辑流(所有循环和其他东西)映射到等效的Python代码.除了之外的一切goto.相关项目:PyCParser(参见参考资料interpreter.py),PyCPython,PyLua.

python bytecode goto compilation

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

在Python中获取打开的TCP端口

我想在Python中的localhost上获得任何随机打开的TCP端口.什么是最简单的方法?

python tcp tcp-port

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

git:重写历史记录:重新排序和合并提交

现在的情况:

origin/mybranch --- A1 --- B1 --- A2 --- B2 --- A3 --- B3   mybranch
Run Code Online (Sandbox Code Playgroud)

我想清理那段历史(A1到B3),尤其是 因为我还没有把它推到任何地方,因为我想准备一个只有那些B*的补丁.

我想要的是:

origin/mybranch --- A1+A2+A3 --- B1+B2+B3   mybranch
Run Code Online (Sandbox Code Playgroud)

我可能根本不会推动这个(或者如果我愿意的话,只有总和的B*,我必须删除A*提交)并且当我在这方面进一步工作时,我可能会得到额外的这样的提交,即像这样:

origin/mybranch --- A1+A2+A3 --- B1+B2+B3 --- A4 --- B4   mybranch
Run Code Online (Sandbox Code Playgroud)

我想再次像上面那样改写它.

我不只是想知道任何方法来做到这一点(因为我能够以某种有点hacky的方式得到某种方式),我,尤其是.在这里要求正确/最好/最干净/最简单的方法来做到这一点.


我在做什么esp.是:我正在处理官方的xorg-xserver-1.7分支,并希望准备一个补丁(B*).因为我希望能够用系统替换我的自编译的xserver以进行简单的测试,所以我已经应用了一堆Debian/Ubuntu补丁(A*).但是,当我要在某处发布该补丁时,我想排除这些.

git rebase

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

zsh:检查字符串是否在数组中

例如

foo=(a b c)
Run Code Online (Sandbox Code Playgroud)

现在,我该怎么做一个简单的检查,如果b$foo

arrays zsh

25
推荐指数
3
解决办法
6911
查看次数

MacOSX Instruments用于分析Python代码

MacOSX Xcode Instruments非常适合分析本机代码.但是,我的callstacks中还有很多Python调用.我可以以某种方式使仪器具有Python感知能力吗?

我能想到的一个解决方案是,当它看到一些PyEval_EvalFrameEx框架时,它在其局部变量/参数中查找以分隔不同的Python调用并向我显示一些调用信息.

我不是在问一个Python分析器.我想描述我的本机代码.但是在这个本机代码分析中,我想添加一些进一步的智能来分析和翻译Python堆栈帧.

python macos instruments xcode-instruments

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