小编Kos*_*Kos的帖子

Python - 格式的零长度字段名称

我在我的Centos机器上使用Python,当我尝试运行我的程序时,我显示了以下错误:

Running setup.py egg_info for package pyepr
Traceback (most recent call last):
  File "<string>", line 16, in <module>
  File "/tmp/pip-build-root/pyepr/setup.py", line 68, in <module>
    print('using EPR C API sources at "{}"'.format(eprsrcdir))
ValueError: zero length field name in format
Complete output from command python setup.py egg_info:
Traceback (most recent call last):

File "<string>", line 16, in <module>

  File "/tmp/pip-build-root/pyepr/setup.py", line 68, in <module>

print('using EPR C API sources at "{}"'.format(eprsrcdir))

ValueError: zero length field name in format
Run Code Online (Sandbox Code Playgroud)

我已经检查了关于这个主题的其他问题,我已经安装了Python 2.7.6并将其设置为我的默认配置,如下所示....

 $ python …
Run Code Online (Sandbox Code Playgroud)

python centos

4
推荐指数
1
解决办法
5335
查看次数

C/C++数组赋值

示例代码:

int ar[3];
............
ar[0] = 123;
ar[1] = 456;
ar[2] = 789;
Run Code Online (Sandbox Code Playgroud)

有没有办法让它缩短?就像是:

int ar[3];
............
ar[] = { 123, 456, 789 };
Run Code Online (Sandbox Code Playgroud)

我不需要解决方案:

int ar[] = { 123, 456, 789 };
Run Code Online (Sandbox Code Playgroud)

定义和初始化必须是分开的.

c c++ arrays initialization variable-assignment

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

我们可以说再见复制构造函数吗?

复制构造函数传统上在C ++程序中无处不在。但是,我怀疑自C ++ 11起是否有充分的理由。

即使程序逻辑不需要复制对象,通常也仅出于对象重新分配的目的而包含复制构造函数(通常是默认值)。没有复制构造函数,您将无法将对象存储在中,甚至无法从函数返回对象。std::vector

但是,自C ++ 11起,移动构造函数一直负责对象的重新分配。

复制构造函数的另一个用例就是简单地复制对象。但是,我非常确信a .copy().clone()method比复制构造函数更适合该角色,因为...

  1. 复制对象并不常见。当然,有时有时对象的接口必须包含“复制自己”的方法,但这只是有时。在这种情况下,显式胜于隐式。

  2. 有时,一个对象可能会公开几种不同.copy()的方法,因为在不同的上下文中,副本可能需要以不同的方式创建(例如,更浅或更深)。

  3. 在某些情况下,我们希望这些.copy()方法完成与程序逻辑相关的重要工作(增加一些计数器,或者为副本生成一个新的唯一名称)。我不会接受任何在复制构造函数中具有非显而易见逻辑的代码。

  4. 最后但并非最不重要的一点是,.copy()如果需要,一种方法可以是虚拟的,从而可以解决切片问题。


我实际想要使用复制构造函数的唯一情况是:

  • RAII处理可复制资源(显然很多)
  • 旨在像内置类型一样使用的结构,例如数学向量或矩阵-
    仅仅是因为它们经常被复制并且vec3 b = a.copy()太冗长。

旁注:我已经考虑过CAS需要复制构造函数这一事实,但出于operator=(const T&)完全相同的推理,我认为CAS是必需的;如果您确实需要此,则首选
.copy()+ operator=(T&&) = default。)

对我而言,这足以激励T(const T&) = delete默认情况下在任何地方使用并.copy()在需要时提供一种方法。(也许也private T(const T&) = default只是能够写copy()virtual copy()没有样板。)

问:以上推理是否正确,或者我是否缺少逻辑对象实际需要或从复制构造函数中以某种方式受益的任何充分理由?

具体来说,我是否正确,因为移动构造函数完全取代了C ++ 11中的对象重新分配的职责?当对象需要在不更改其状态的情况下在内存中的其他位置移动时,我会在所有情况下非正式地使用“重新分配”。

c++ clone copy-constructor c++11

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

如何引用角色定义中的所有子资源?

这是一个简单的 Kubernetes 角色:

apiVersion: rbac.authorization.k8s.io/v1beta1
kind: Role
metadata:
  name: temp-role
  namespace: stackoverflow
rules:
- apiGroups: [""]
  resources:
  - pods
  verbs:
  - get
Run Code Online (Sandbox Code Playgroud)

这个角色让我可以说kubectl get pod foobar,我可以得到吊舱。

但是,我现在无法获取 pod 日志:

Error from server (Forbidden): pods "foobar" is forbidden: User "system:serviceaccount:kube-system:myuser" cannot get resource "pods/log" in API group "" in the namespace "stackoverflow"
Run Code Online (Sandbox Code Playgroud)

所以错误告诉我有一个单独的子资源pods/log,我需要在我的资源中明确提及。

有趣的kubectl auth can-i是对我撒谎:

$ kubectl -n stackoverflow auth can-i get pods/log                                                                           
yes
Run Code Online (Sandbox Code Playgroud)

好的,让我们解决这个问题并直接提及子资源:

apiVersion: rbac.authorization.k8s.io/v1beta1
kind: Role
metadata:
  name: temp-role
  namespace: stackoverflow …
Run Code Online (Sandbox Code Playgroud)

rbac kubernetes

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

c ++无法找到文件(我认为)

我有以下代码(简化)

int main()
{
    ifstream myFile("input.txt");
    if(myFile.is_open())
        cout<<"test";
}
Run Code Online (Sandbox Code Playgroud)

但是myFile.is_open()返回假;

为什么?

我正在使用eclipse并且input.txt文件位于带有.cpp文件的src文件夹中...

谢谢!

c++ eclipse file eclipse-cdt

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

稀疏的O(1)数组,索引是连续的产品

我想预先计算一些一元函数的值数组f.

我知道,我只需要值f(x),其中x是的形式a*b,其中两个ab在范围内的整数0..N.

明显的时间优化选择只是制作一个大小的数组,N*N只是预先计算我稍后要阅读的元素.因为f(a*b),我只是检查和设置tab[a*b].这是最快的方法 - 但是,这将占用大量空间,因为此数组中有许多索引(从开头N+1),永远不会触及.

另一种解决方案是制作一个简单的树形图......但是这会通过引入大量分支来大大减慢查找本身的速度.没有.

我想知道 - 是否有任何解决方案可以使这样的数组更少稀疏和更小,但仍然可以在查找中快速无分支O(1)?

编辑

我可以听到很多关于哈希映射的评论......我将继续对一个人的行为进行基准测试(我预计由于分支而导致正常查找的性能显着下降;比在树中更少,但仍然......让我看看我是否"M吧!) .

我想强调一点:我主要赞赏一种分析解决方案,它可以使用一些聪明的方法(?)来利用只有"类似产品"指数的事实.我觉得这个事实可能会被利用来获得更好的结果,即平均通用哈希映射函数,但我自己也没有想法.

编辑

按照你的建议,我试过std::unordered_mapgcc 4.5.这比简单的数组查找慢一点,但确实比基于树的更快std::map- 最终我对这个解决方案很满意.我现在明白为什么不可能做我原本打算做的事情; 谢谢你的解释!

我只是不确定哈希映射是否实际上节省了任何内存!:)正如@Keith Randall所描述的那样,我无法将内存占用率降低N*N/4,并且@Sjoerd描述的三角矩阵方法给了我N*N/2.我认为N*N/2如果元素大小很小(取决于容器开销),哈希映射完全有可能使用空间以上- 这将使最快的方法也是最有效的内存!我会试着检查一下.

我希望我能接受2个答案......

c++ algorithm sparse-array

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

最佳实践:验证方法调用的条件?

我想在几乎每个程序中,有时候方法不需要一直调用,只能在特定条件下调用.检查是否必须调用方法非常容易.一个简单的if-statment可以解决问题.

if (value == true)
{
    DoSomething();
}
Run Code Online (Sandbox Code Playgroud)

但是,如果您有许多条件,验证可能会变得复杂,代码会变得越来越长.所以我用每次调用的方法编写代码,方法本身将检查并验证她的代码是否需要执行.

DoSomething(value);
Run Code Online (Sandbox Code Playgroud)

... 然后 ...

public void DoSomething(bool value)
{
    if (value == true)
    {
    // Do Something here ...
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我有两种做事方式.我不确定哪种方式是正确的.或者甚至还有另一种选择?

c# c++

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

如何从REPL获得离线CLHS?

我在Windows上使用GNU Common Lisp.

在交互式模式中,在我键入后(funcnTAB,REPL自动完成功能名称.当我TAB再次按下时,调试器触发如下:

Break 1 [31]> (isqrt

ISQRT is the symbol ISQRT, lies in #<PACKAGE COMMON-LISP>, is accessible in 11
packages CLOS, COMMON-LISP, COMMON-LISP-USER, EXPORTING, EXT, FFI, POSIX,
READLINE, REGEXP, SCREEN, SYSTEM, names a
*** - CLHS-ROOT: variable *CLHS-ROOT-DEFAULT* has no value
The following restarts are available:
ABORT          :R1      Abort debug loop
ABORT          :R2      Abort main loop
Run Code Online (Sandbox Code Playgroud)

看起来我可以以某种方式将引用(CLHS)与交互式shell集成,以便我可以快速获得它.我在哪里可以找到CLHS的这种离线副本以及如何将其与REPL集成?

lisp common-lisp interactive-mode

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

strchr的问题

我无法理解为什么下面的C代码不起作用:

int obtainStringLength(char* str, char c1, char c2) {
    char* firstOcurrence = strchr(str, c1);
    char* endOcurrence = strchr(str, c2);
    return 2+(endOcurrence - firstOcurrence) / sizeof(char*);
}
Run Code Online (Sandbox Code Playgroud)

我们的想法是找到c1和之间有多少个字符c2:

printf("%d\n", obtainStringLength("abc def ghi", 'a', 'i')); //should yield 11
Run Code Online (Sandbox Code Playgroud)

不幸的是,这总是打印1.问题是什么?不应该strchr像C#一样工作string.IndexOf()吗?

c pointer-arithmetic

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

检测按键何时被释放

我想检查一个键何时被释放,但我不能在没有无限循环的情况下这样做,这使其余的代码暂停。如何在没有无限循环的情况下运行我的程序的其余部分时检测键是否被释放?这是我找到的并且一直在使用的代码:

#include "stdafx.h"
#include <windows.h>
#include <iostream>
#include <fstream>
using namespace std;

int main()
{
    int counter=0;
    ofstream myfile;
    short prev_escape = 0, curr_escape = 0;
    myfile.open("c:\\example.txt");
    while(true)
    {
        if(GetAsyncKeyState(VK_ESCAPE))
            curr_escape = 1;
        else
            curr_escape = 0;
        if(prev_escape != curr_escape)
        {
            counter++;
            if(curr_escape)
            {
                myfile <<"Escape pressed : " << counter << endl;
                cout<<"Escape pressed !" << endl;
            }
            else
            {
                myfile <<"Escape released : " << counter << endl;
                cout<<"Escape released !" << endl;
            }
            prev_escape = curr_escape;
        } …
Run Code Online (Sandbox Code Playgroud)

c++ winapi

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

向 PayPal 买家发送电子邮件

我正在网站上介绍 PayPal Digital Goods for Express Checkout。对于登录的用户,有效的结帐会导致网站上用户的个人资料更新,从而允许访问更多内容。

所有者希望添加对尚未登录网站的客户端的支持。我们通过引入具有唯一 URL 的登陆页面来解决此问题,用户在付款后会被重定向到该页面,并且可用于创建新帐户或将现有帐户标记为已付款。如果用户不想立即执行此操作,则着陆页的 URL 将是持久的且可添加书签。

但是,如果客户不想立即登录并且无法为其唯一链接添加书签,我们希望另外发送一封包含该链接的确认电子邮件。

购买后,Paypal 会立即向买家发送收据电子邮件。我可以以某种方式在该电子邮件中为客户插入其他消息吗?

如果没有,是否有其他 PayPal API 功能可以让我向客户在 PayPal 注册的电子邮件发送消息?

email paypal

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