小编Pat*_*ryk的帖子

Python中函数的静态成员?

可能重复:
Python中的静态类变量
函数内部的静态变量的Python等价物是什么?

如何在Python中使用静态字段?

例如,我想计算函数被调用的次数 - 我该怎么做?

python static-members

24
推荐指数
2
解决办法
3277
查看次数

typedef指针const古怪

请考虑以下代码:

typedef struct Person* PersonRef;
struct Person {
  int age;
};

const PersonRef person = NULL;

void changePerson(PersonRef newPerson) {
  person = newPerson;
}
Run Code Online (Sandbox Code Playgroud)

出于某种原因,编译器抱怨只读值不可分配.但是const关键字不应该使指针成为常量.有任何想法吗?

c typedef const

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

全局初始化失败:BadValue无效或无用户区域设置.请确保正确设置LANG和/或LC_*环境变量

我有问题在serveur herbert和homer上生成语言环境.我跑mongo我收到了警告

Failed global initialization: BadValue Invalid or no user locale set. Please ensure LANG and/or LC_* environment variables are set correctly.
Run Code Online (Sandbox Code Playgroud)

我跑的时候

dpkg-reconfigure locales

mongo开始成功,然后当重新启动服务器并运行mongo我有同样的问题.

谢谢你的帮助

ubuntu mongodb server

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

Vim:更改鼠标单击行为

我正在玩我的vimrc设置,并启用了鼠标支持.

set mouse=a
Run Code Online (Sandbox Code Playgroud)

现在,我想念鼠标的复制和粘贴选项.通常情况下,如果未启用鼠标,我可以通过左键单击+拖动来复制文本,然后通过右键单击粘贴(在"插入"模式下).所以,

如何获取副本,启用鼠标粘贴(鼠标单击,而不是Ctrl+ v等).启用鼠标时我唯一需要的选项是单击文件中的任意位置,光标指向该位置.这有助于加快导航速度

我使用putty(x-term)连接到我的debian服务器.

vi vim

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

MinGW创建dll.a文件?这些库文件是什么类型的?

我相当熟悉Windows和Linux库的编译但今天当我看到MinGW我的Windows机器上抛出了dll.a.a 文件的OpenCV编译后我开始认真地开始思考.

这些是我\lib从OpenCV编译的输出:

2012-12-21  23:35         1 338 420 libopencv_core243.dll.a
2012-12-21  23:33           224 994 libopencv_core_pch_dephelp.a
2012-12-21  23:38           830 820 libopencv_features2d243.dll.a
Run Code Online (Sandbox Code Playgroud)

我的\bin输出:

2012-12-21  23:40           356 178 libopencv_perf_core.dll.a
2012-12-21  23:45           362 702 libopencv_perf_features2d.dll.a
2012-12-21  23:35         4 086 052 libopencv_core243.dll
2012-12-21  23:38         2 102 896 libopencv_features2d243.dll
Run Code Online (Sandbox Code Playgroud)

(我显然有更多的二进制文件,但在这里列出它是没有意义的)

有人能告诉我这些是否是我可以链接的普通静态库?我应该如何与他们联系?

windows linker mingw static-libraries static-linking

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

vector :: begin()和std :: begin()之间的区别

在c ++中迭代一个向量时,我注意到begin()标准库中有一个函数,还有一个begin()作为类的成员函数vector.如果有的话,两者之间的区别是什么,哪一个应该用于另一个?

例:

vector<int> numbers;
//Code to put values in my vector
for (vector<int>::iterator i = numbers.begin(); i < numbers.end(); i++)
    cout << *i << '\n';
Run Code Online (Sandbox Code Playgroud)

VS:

vector<int> numbers;
//Code to put values in my vector
for (vector<int>::iterator i = std::begin(numbers); i < std::end(numbers); i++)
    cout << *i << '\n';
Run Code Online (Sandbox Code Playgroud)

c++ vector

19
推荐指数
2
解决办法
4863
查看次数

如何在给定SHA1的git中获取(仅)作者姓名或电子邮件?

我想检查一下作者的电子邮件和姓名,以确认谁正在推送我的回购.

有没有办法让我在git中提出一个命令来显示提交者的名字/电子邮件,只提供提交的SHA1?

这就是我提出的,但它远非理想的解决方案(第一个解决方案是git hook,这就是为什么它使用2个SHA1 rev-list.第二个只是使用git show):

git rev-list -n 1 --pretty=short  ccd3970..6ddf170 | grep Author | cut -d ' ' -f2- | rev | cut -d ' ' -f2- | rev
git show 6ddf170 | grep Author | cut -d ' ' -f2- | rev | cut -d ' ' -f2- | rev 
Run Code Online (Sandbox Code Playgroud)

git sha1 author commit

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

连接到Github时"无法生成ssh",但ssh -T git@github.com有效吗?

我很难获得Github(+ Netbeans工作).

我想在git(在Windows 7上)使用ssh,例如,提交或克隆项目,但我不断收到此错误消息:

$ git clone git@github.com:USER/PROJECTNAME.git
error: cannot spawn C:\Program Files (x86)\Git\bin\ssh.exe: No such file or directory
fatal: unable to fork
Run Code Online (Sandbox Code Playgroud)

注意:现在,我的GIT_SSH环境变量指向C:\Program Files (x86)\Git\bin\ssh.exe,但我也试过C:\Program Files (x86)\Git\bin,完全擦除它,指向putty的/ plink的文件夹,并指向它们的可执行文件,但仍然是相同的消息.

当我测试连接时,一切正常:

$ ssh -T git@github.com
Hi USER! You've successfully authenticated, but GitHub does not provide shell access.
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?如果我git init首先在目录中执行此操作会有所不同吗?

编辑:

这没有帮助:

设置GIT_SSHplink.exe并加入砰砰的路径PATH

**编辑2**

命令的结果 GIT_TRACE=2

$ GIT_TRACE=2 git clone git@github.com:XXX/AffableBean
trace: built-in: git 'clone' 'git@github.com:XXX/AffableBean'
Cloning …
Run Code Online (Sandbox Code Playgroud)

git ssh version-control github

18
推荐指数
5
解决办法
3万
查看次数

如何轻松检测2个ROI是否与OpenCv相交?

我试图检测2个感兴趣的区域是否CvRect在OpenCV中相互交叉.我显然可以手动键入几个(或更确切地说是很多)条件来检查,但这不是一个很好的方法(imo).

谁能建议我任何其他解决方案?OpenCV中有一个现成的方法吗?

c++ opencv roi

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

首次锁定和创建lock_guard(adopt_lock)以及创建unique_lock(defer_lock)和锁定之间的区别是什么?

我找到了以下2段代码:

  1. http://en.cppreference.com/w/cpp/thread/lock

    void assign_lunch_partner(Employee &e1, Employee &e2)                                                                                                  
    {   
        // use std::lock to acquire two locks without worrying about 
        // other calls to assign_lunch_partner deadlocking us
        {   
            // m is the std::mutex field
            std::unique_lock<std::mutex> lk1(e1.m, std::defer_lock);
            std::unique_lock<std::mutex> lk2(e2.m, std::defer_lock);
            std::lock(lk1, lk2);
            // ...
        }   
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. http://www.amazon.com/C-Concurrency-Action-Practical-Multithreading/dp/1933988770

    void swap(X& lhs, X&rhs){                                                                                                                              
      if(&lhs == &rhs)
        return;
      // m is the std::mutex field
      std::lock(lhs.m, rhs.m);
      std::lock_guard<std::mutex> lock_a(lhs.m, std::adopt_lock);
      std::lock_guard<std::mutex> lock_b(rhs.m, std::adopt_lock);
      swap(lhs.some_detail, rhs.some_detail);
    }
    
    Run Code Online (Sandbox Code Playgroud)

我想问一下使用2个版本中的任何一个有什么区别和后果?(先锁定或首先创建std::lock_guardstd::unique_lock?)

c++ multithreading mutex locking c++11

16
推荐指数
3
解决办法
4737
查看次数