小编Gua*_*rez的帖子

如何在 Jupyter 中使用 tqdm 进度条?

我正在使用 Jupyter 小部件编写一个界面,用户在其中配置一堆设置,然后单击“运行”按钮。单击后,此按钮将调用另一个模块中实现的函数。该函数需要一些时间才能运行,因此我使用该包向其添加了一个进度条tqdm。不幸的是,当我单击“运行”时,此进度条现在显示在另一个终端中,而不是在单元格的输出中。有没有办法让条形图显示在同一单元格输出中?

python ipywidgets tqdm jupyter-lab

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

C++:如何返回指向非静态成员函数的指针?

我想做这样的事情:

typedef int(A::*f_ptr)(int);
class A
{
    int f1(int a){ /*do something*/ }
    int f2(int a){ /*do something else*/ }
    f_ptr pick_f(int i)
    {
         if(i)
              return this->f1;
         return this->f2;
    }
}
Run Code Online (Sandbox Code Playgroud)

原因是我希望类 A 的实例保存某些有用的变量,然后根据用户输入只选择我需要的成员函数。但这不起作用,因为我得到“指向绑定函数的指针只能用于调用该函数”。如何编写返回指向非静态成员函数的指针的函数?

c++ pointers member-function-pointers

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

C中的标识符到底是什么?

每个 Google 搜索都将它们解释为“变量的名称”,但我感觉标识符和标识符的名称之间存在区别。标识符是否更像是具有名称、范围、链接和底层对象等属性的对象?我问这个是因为我在尝试阅读 C 标准时遇到了一些麻烦。例如,片段

int main(){
  int x;
  extern int x;
}
Run Code Online (Sandbox Code Playgroud)

编译失败而

int main(){
  int x;
  if(1){extern int x;}
}
Run Code Online (Sandbox Code Playgroud)

编译成功。在这个问题中,第一个片段的失败是从 C 标准中的 6.2.2.6 解释的,它指出局部变量没有链接。然而,在第二个片段中,局部变量仍然没有链接,但没有冲突。现在,6.2.2.4 状态

对于在该标识符的先前声明可见的范围内使用存储类说明符 extern 声明的标识符,如果先前声明指定内部或外部链接,则后面声明中标识符的链接与链接相同在事先声明中指定。如果没有可见的先前声明,或者如果先前声明没有指定链接,则标识符具有外部链接。

我的解释是这个规则在两个片段中都有效,但在第一个片段中,底层对象的唯一性x通过 6.2.1.2 触发了约束违规,因为相同的标识符名称用于两个不同的对象,相同的范围和名称空间。但这不是我之前链接的问题的答案中给出的解释。在第二个片段中,链接类型仍然存在冲突,那么更改extern声明的范围是否会更改本地声明的可见性?从 C 标准的抽象角度考虑链接的最佳方法是什么(不使用 gcc 或 clang 等实际实现作为说明)?

c compilation linkage

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