小编P.K*_*.K.的帖子

如何“docker exec”一个从头开始构建的容器?

我正在尝试docker exec从头开始构建的容器(例如 NATS 容器)。看起来很简单,但由于它是从头开始构建的,因此我无法访问/bin/bash/bin/sh并且几乎无法访问任何此类命令。

我收到错误:(oci runtime error未找到命令、未找到文件等,具体取决于我输入的命令)。

我尝试了一些命令,例如:

docker exec -it <container name> /bin/bash
docker exec -it <container name> /bin/sh
docker exec -it <container name> ls
Run Code Online (Sandbox Code Playgroud)

我的问题是,如何创建docker exec一个从头开始构建且仅包含二进制文件的容器?通过做docker exec,我想看看文件已经成功地从我的主机到容器复制(我有一个COPYDockerfile)。

containers docker

7
推荐指数
3
解决办法
4990
查看次数

`new` 运算符是否总是调用构造函数?

我的问题受到 Thomas Cormen 教授对其Quora answer $第二条评论的影响。

他说构造函数执行以下三个任务:

  1. 为对象分配内存。

  2. 初始化对象的实例变量,例如,通过在 Python 中隐式调用init。(我还强调init方法不应该初始化一些,而是所有的实例变量。)

  3. 返回对象的引用(即地址)。

但是,C++ *MSDN 文档说它是执行此操作的运算符:new

从自由存储中为类型名称的对象或对象数组分配内存,并返回指向该对象的适当类型的非零指针。

我的问题是,谁是对的?或者,是否还有更多的东西,也许就像new操作员总是调用构造函数一样,正如帖子中的评论所建议的那样?

谢谢。

$ 不幸的是,Quora 没有复制评论链接的选项——我只能为答案这样做。
* 虽然我说的是 C++,但我认为对于 Java 和 C# 等其他语言也是如此(虽然我不是 100% 确定)。

c++ constructor new-operator

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

递增迭代变量后的直觉?

我在LeetCode.com上解决了一个问题:

给定一个具有红色,白色或蓝色的n个对象的数组,对它们进行就地排序,使相同颜色的对象相邻,颜色顺序为红色,白色和蓝色.这里,他们使用整数0,1和2分别表示红色,白色和蓝色.[无法使用琐碎的计数排序].

输入:[2,0,2,1,1,0]; 预期的输出是:[0,0,1,1,2,2].

其中一个高度赞成的解决方案是这样的:

   public void sortColors(vector<int>& A) {
       if(A.empty() || A.size()<2) return;
       int low = 0; 
       int high = A.size()-1;
       for(int i = low; i<=high;) {
           if(A[i]==0) {
              // swap A[i] and A[low] and i,low both ++
              int temp = A[i];
              A[i] = A[low];
              A[low]=temp;
              i++;low++;
           }else if(A[i]==2) {
               //swap A[i] and A[high] and high--;
              int temp = A[i];
              A[i] = A[high];
              A[high]=temp;
              high--;
           }else {
               i++;
           }
       }
   }
Run Code Online (Sandbox Code Playgroud)

我的问题是,为什么i当递增A[i]==0 …

c++ algorithm

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

为什么使用 Deque 而不是内置 Stack&lt;&gt;?

Java文档说,Stack最好从 a 创建 a Deque,而不是使用 quintessential Stack<>。不幸的是,它没有强调为什么会这样

双端队列也可以用作 LIFO(后进先出)堆栈。应优先使用此接口而不是旧版 Stack 类。当双端队列用作堆栈时,元素从双端队列的开头推送和弹出。

有人可以指出为什么会这样吗?同样,是否还有其他情况我们应该避免使用内置Collections对象?我是一名转向 Java 的 C++ 开发人员,因此任何此类微妙的指针都会有所帮助。

谢谢。

java collections stack deprecated obsolete

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