小编Sea*_*nch的帖子

VexCL,Thrust和Boost.Compute之间的差异

通过对这些库的粗略理解,它们看起来非常相似.我知道VexCL和Boost.Compute使用OpenCl作为后端(尽管v1.0版本VexCL也支持CUDA作为后端)并且Thrust使用CUDA.除了不同的后端,这些之间的区别是什么.

具体来说,他们解决了什么问题空间,为什么我要使用其中一个.

另外,在Thrust常见问题解答中说明了这一点

OpenCL支持的主要障碍是缺少OpenCL编译器和运行时支持C++模板

如果是这种情况,VexCL和Boost.Compute怎么可能存在.

c++ gpu-programming thrust boost-compute vexcl

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

Node.js:何时使用Promises vs Callbacks

我有一些较旧的Node.js代码,我正在更新.在这个过程中,我正在设计新模块以使用旧代码.我现在发现,与我第一次写这篇文章相反,我更依赖于使用ES6承诺而不是回调.所以现在我有一些函数的混合返回promises和一些回调 - 这是乏味的.我认为最终应该重构使用promises.但在此之前......

哪些承诺是首选的,哪些是首选回调?

是否有任何类型的情况,回调可以处理比承诺更好,反之亦然?

根据我到目前为止看到的情况,我真的看不出任何使用回调而不是承诺的理由.真的吗?

callback node.js promise es6-promise

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

使用npm更新本地文件依赖性

我有一个带有本地文件依赖项的项目,package.json如下所示:

"dependencies": {
    "dep_1": "file:../../dep_1"
  }
}
Run Code Online (Sandbox Code Playgroud)

当我这样做时,npm install它被安装到node_modules中.但是,如果我更改dep_1如何更新node_modules中的模块版本?

我尝试过,npm update但没有任何反应.

node.js npm

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

随机选择两个值

在我的算法中,我有两个值,我需要随机选择,但每个值必须选择预定次数.

到目前为止,我的解决方案是将选项放入向量中正确的次数,然后将其洗牌.在C++中:

// Example choices (can be any positive int)
int choice1 = 3; 
int choice2 = 4;

int number_of_choice1s = 5;
int number_of_choice2s = 1;

std::vector<int> choices;
for(int i = 0; i < number_of_choice1s; ++i) choices.push_back(choice1);
for(int i = 0; i < number_of_choice2s; ++i) choices.push_back(choice2);
std::random_shuffle(choices.begin(), choices.end());
Run Code Online (Sandbox Code Playgroud)

然后我保留一个迭代器choices,每当我需要一个新的迭代器时,我会增加迭代器并获取该值.

这有效,但似乎可能有一种更有效的方式.因为我总是知道我将使用的每个值中有多少我想知道是否有更多的算法方法来执行此操作,而不仅仅是存储值.

c++ random algorithm

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

time_since_epoch 的 std::chrono 默认持续时间

如果我有以下时钟并使用它来计算自时钟纪元以来的滴答计数,那么这个计数实际上代表什么。

std::chrono::high_resolution_clock::now().time_since_epoch().count();
Run Code Online (Sandbox Code Playgroud)

例如,我刚刚运行了这个并得到了1389375799048790227. 这个数字是什么意思?是纳秒、微秒等吗?

c++ c++11 c++-chrono

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

在Jenkinsfile中运行映像时如何传递Docker容器参数

我有一个以结尾的Dockerfile

ENTRYPOINT ["node", "index.js"]
CMD ["--help"]
Run Code Online (Sandbox Code Playgroud)

index.js可以采取一些不同的论点,我也需要暴露口容器,所以如果我运行手动我做这样的事情:

docker run -p 3000:3000 my_container:latest --arg1 somearg --arg2 anotherarg
Run Code Online (Sandbox Code Playgroud)

如何在Jenkinsfile中执行此操作?我的测试将与此容器通信,因此它需要在运行测试之前运行。我使用withRun()在测试运行之前先运行它,但看不到如何指定--arg1 somearg --arg2 anotherarg

stage('TestMicroservice') {
    //
    // HOW DO I SPECIFY '--arg1 somearg --arg2 anotherarg'?
    //
    docker.image("my_container:latest").withRun('-p 3000:3000') {
        sh 'npm run test-microservice'
    }
}
Run Code Online (Sandbox Code Playgroud)

jenkins docker jenkins-pipeline

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

shared_ptr的容器,但使用原始指针进行迭代

我有一个类,其中包含一个包含boost::shared_ptrs另一个类的对象的列表.

允许访问列表返回原始指针中的元素的类成员函数.为了保持一致性,我还希望能够使用原始指针而不是shared_ptrs进行迭代.因此,当我取消引用列表迭代器时,我想获得原始指针,而不是shared_ptr.

我假设我需要为此编写一个自定义迭代器.它是否正确?如果是这样,有人能指出我正确的方向 - 我以前从未这样做过.

c++ iterator

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

Orgmode:显示标题下的子项数

我的orgmode文件中有一个标题.它会定期与新孩子一起自动更新.我希望标题行显示孩子的数量.

所以如果我有一个孩子就会说出类似的话 (1)

* Heading (1)
** Subheading
Run Code Online (Sandbox Code Playgroud)

在使用另一个子标题更新后,该数字应自动更改为 (2)

* Heading (2)
** Subheading
** A new added subheading
Run Code Online (Sandbox Code Playgroud)

我希望它这样做,因为顶层标题通常会折叠.我想能够看到是否有任何新的孩子被添加到它而不必扩展它

org-mode

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

组织模式议程忽略没有TODO状态的条目

我在组织文件中有以下(子)树

* Project
** SubProject
*** TODO Do this action 1
*** TODO Do this action 2
Run Code Online (Sandbox Code Playgroud)

我希望我的议程只显示带有TODO关键字的条目.目前议程给了我

Project
SubProject
TODO Do this action 1
TODO Do this action 2
Run Code Online (Sandbox Code Playgroud)

我希望它只显示

TODO Do this action 1
TODO Do this action 2
Run Code Online (Sandbox Code Playgroud)

目前我org-agenda-skip-function-global用来跳过DONECANCELLED动作

(setq org-agenda-skip-function-global 
      '(org-agenda-skip-entry-if 'todo '("DONE" "CANCELLED")))
Run Code Online (Sandbox Code Playgroud)

有没有办法告诉这个也跳过没有TODO状态的动作?我试过添加nil""但是这不起作用?如果没有,还有其他办法吗?

org-mode

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

在Mathematica中用括号括起文本选择

有没有办法在Mathematica笔记本中选择一些文本,然后将选择括在括号中?

例如,如果我在笔记本中键入以下内容:

1, 2, 3, 4
Run Code Online (Sandbox Code Playgroud)

我希望能够选择所有文本,然后键入命令以插入匹配的大括号(alt-}在Linux上),它会将选择包装在大括号中.

{1, 2, 3, 4}
Run Code Online (Sandbox Code Playgroud)

wolfram-mathematica

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