小编Max*_*axB的帖子

为什么std :: vector需要移动构造函数用于其元素?

C++ 98声明std :: vector元素应该有copy-constructors.在C++ 11中,情况已不再如此.相反,元素必须具有移动构造函数.

根据你对std :: vector的处理方式,你可能真的需要或者可能不需要调用copy-或move-构造函数,但标准中始终只需要其中一个.为什么?

更新:显然,前提是不正确的.我的困惑从阅读的答案,如朵朵.

c++ stl vector move-semantics c++11

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

Python模块是否应该导入它们在语义上依赖的模块?

Python应该import模块化它们在语义上依赖的模块吗?

例如:

模块a:

class A(object):
    ...
    def foo(self):
        ...
Run Code Online (Sandbox Code Playgroud)

模块b:

import a

def f(a_instance):
    a_instance.foo()
    ...
Run Code Online (Sandbox Code Playgroud)

b严格来说,第一行模块是不必要的,但我想知道它是否被认为是Python中的好形式?

python

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

为什么"(睡10和睡1);等"1秒后返回而不是10?

wait 但是,没有参数应该等待所有子进程

(sleep 10 & sleep 1); wait
Run Code Online (Sandbox Code Playgroud)

1秒后返回而不是10秒,因此无法等待sleep 10完成.

为什么会这样,我该如何解决?

bash wait

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

是“mmap教程”不正确,还是GCC错误编译了它?

这个15 年前的mmap 教程在 Google 搜索中排名很高,但实际上它在我的 Linux 系统上运行时出现了微妙的错误。

mmap_write.c:

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/mman.h>

#define FILEPATH "/tmp/mmapped.bin"
#define NUMINTS  (1000)
#define FILESIZE (NUMINTS * sizeof(int))

int main(int argc, char *argv[])
{
    int i;
    int fd;
    int result;
    int *map;  /* mmapped array of int's */

    /* Open a file for writing.
     *  - Creating the file if it doesn't exist.
     *  - Truncating it to 0 size if it already …
Run Code Online (Sandbox Code Playgroud)

c linux gcc mmap

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

为什么这个boost :: variant缺少运算符<<?

我已经读过boost::variant如果它的所有变体都是可流动的,那么它是可流动的.然而,

#include <iostream>
#include <vector>
#include <string>
#include <boost/variant.hpp>

std::ostream& operator<<(std::ostream& out, const std::vector<int>& v) {
    for(int i = 0; i < v.size(); ++i)
        out << " " << v[i];
    return out;
}

int main() {
    boost::variant<int, std::string > a(3);
    std::cout << a << '\n'; // OK

    std::vector<int> b(3, 1);
    std::cout << b << '\n'; // OK

    boost::variant<int, std::vector<int> > c(3);
    std::cout << c << '\n'; // ERROR
}
Run Code Online (Sandbox Code Playgroud)

无法编译.为什么?

版本:

  • 提升1.53
  • GCC 4.6.3

c++ boost boost-variant

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

为什么 torch.version.cuda 和 deviceQuery 报告不同的版本?

我对我的系统上安装的 CUDA 版本以及是否被我的软件有效使用有疑问。\n我在网上做了一些研究,但找不到解决我的疑问的方法。\n这个问题对我的理解有所帮助,并且是与我下面要问的问题最相关的是这个

\n

问题描述:

\n

我使用 virtualenvironmentwrapper 创建了一个虚拟环境,然后在其中安装了 pytorch。

\n

一段时间后,我意识到我的系统上没有安装 CUDA。

\n

您可以通过执行以下操作找到它:
\nnvcc \xe2\x80\x93V

\n

如果没有返回任何内容,则意味着您没有安装 CUDA(据我了解)。

\n

因此,我按照这里的说明进行操作

\n

我用这个官方链接安装了CUDA。

\n

然后,我nvidia-development-kit简单地安装了

\n

sudo apt install nvidia-cuda-toolkit

\n

现在,如果在我的虚拟环境中我这样做:

\n

nvcc -V

\n

我得到:

\n
nvcc: NVIDIA (R) Cuda compiler driver\nCopyright (c) 2005-2019 NVIDIA Corporation\nBuilt on Sun_Jul_28_19:07:16_PDT_2019\nCuda compilation tools, release 10.1, V10.1.243\n
Run Code Online (Sandbox Code Playgroud)\n

但是,如果(总是在虚拟环境中)我这样做:

\n

python -c "import torch; print(torch.version.cuda)"

\n

我得到:

\n

10.2

\n

这是我不明白的第一件事。我在虚拟环境中使用哪个版本的 CUDA?

\n …

python linux cuda virtual-environment pytorch

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

标签 统计

c++ ×2

linux ×2

python ×2

bash ×1

boost ×1

boost-variant ×1

c ×1

c++11 ×1

cuda ×1

gcc ×1

mmap ×1

move-semantics ×1

pytorch ×1

stl ×1

vector ×1

virtual-environment ×1

wait ×1