毫无疑问,我会选择将STL用于大多数C++编程项目.最近我提出了这个问题,"有没有你不会使用STL的情况?"......
我越是想到它,我就越意识到也许应该是我选择不使用STL的情况......例如,一个非常大的长期项目,其代码库预计将持续数年......也许是真正符合项目需求的定制容器解决方案值得最初的开销吗?你怎么想,有没有你选择不STL的情况?
假设我需要从1000000个随机数值序列中检索中值.
如果使用任何但是 STL ::名单,我没有(内置)的排序方式为中值计算序列.
如果使用STL :: list,我不能随机访问值来检索排序序列的中间(中位数).
是自己实现排序和使用例如STL :: vector更好,还是使用STL :: list并使用STL :: list :: iterator for-loop-walk到中值?后者似乎不那么开销,但也感觉更难看..
或者我有更多更好的选择吗?
我是Scala的新手,我正在尝试理解集合层次结构.我看到有"可变"和"一成不变"的集合之间的区别,但我不明白这是什么,其实就是在执行层面,以及如何这涉及到val
和var
.有人能给我一些见解吗?此外,每个集合类都有"可变"版本和"不可变"版本,还是有些类只能是"可变"或"不可变"?
在使用docker
容器时开发应用程序时我没有得到一些东西.
让我说我正在开发一个java应用程序,我设置了一个带有jdk 8基本映像的java容器,我仍然需要在我的本地开发机器上安装java 8 jdk,因为我要使用的IDE将寻找运行时本地计算机上的库而不是docker容器.
这是对的还是我错过了什么?有些事情我可以完全在docker容器上做,比如设置一个数据库,但是我还需要在我的本地开发机器上做一些事情,并尝试将它与我的docker镜像匹配,例如像java或python这样的语言运行库为了使用IDE.
containers docker docker-compose docker-swarm docker-machine
我创建了一个本地docker注册表,然后从docker hub中提取了一些docker镜像,然后将它们推送到本地注册表.现在我想删除我的本地图像.但问题是imageID
图像是相同的,我不能删除它们.我搜索了解决方案,但我找不到解决方案.
>> docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
localhost:5000/[repo1] v-0.9.1 810001cb03af 4 weeks ago 594.6 MB
[myaccount]/[repo1] v-0.9.1 810001cb03af 4 weeks ago 594.6 MB
Run Code Online (Sandbox Code Playgroud)
如你所见image ID
,两张图片都是一样的.我该如何删除它们?
编辑
我的码头版:
Docker version 1.8.2, build 0a8c2e3
输出docker rmi 810001cb03af
:
来自守护程序的错误响应:冲突,无法删除图像810001cb03af,因为它被标记在多个存储库中,使用-f强制错误:无法删除图像:[810001cb03af]
docker rmi -f 81000
将删除他们两个,我需要再次拉.什么是容器/适配器?
有人请用外行的语言解释.
我试图在互联网上查找,但定义和解释太技术化,难以理解.
我有C++的基本知识及其子主题,如(class/templates/STL).
编辑1:
有谁能给我一个容器/适配器应用的实际例子?
只是为了更好地理解:-)
谢谢.
如何使用不同的容器声明模板类(适配器)作为模板参数?例如,我需要声明类:
template<typename T, typename Container>
class MyMultibyteString
{
Container buffer;
...
};
Run Code Online (Sandbox Code Playgroud)
而我希望它基于矢量.如何使其明确定义?(以防止有人写这样的声明MyMultibyteString<int, vector<char>>
).
而且,如何实施这样的建设:
MyMultibyteString<int, std::vector> mbs;
Run Code Online (Sandbox Code Playgroud)
没有将模板参数传递给容器.
我首先得到了我的nginx docker图像:
docker pull nginx
Run Code Online (Sandbox Code Playgroud)
然后我开始了:
docker run -d -p 80:80 --name webserver nginx
Run Code Online (Sandbox Code Playgroud)
然后我停了下来:
docker stop webserver
Run Code Online (Sandbox Code Playgroud)
然后我尝试重新启动它:
$docker run -d -p 80:80 --name webserver nginx
docker: Error response from daemon: Conflict. The container name "/webserver" is already in use by container 036a0bcd196c5b23431dcd9876cac62082063bf62a492145dd8a55141f4dfd74. You have to remove (or rename) that container to be able to reuse that name..
See 'docker run --help'.
Run Code Online (Sandbox Code Playgroud)
嗯,这是一个错误.但实际上现在容器列表中没有任何内容:
docker container list
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Run Code Online (Sandbox Code Playgroud)
为什么我重启nginx图片失败了?怎么解决?
我刚尝试了Docker.它真棒,但似乎与ufw不太合作.默认情况下,docker会稍微操纵iptables.结果不是错误,而是我所期望的.有关详细信息,请阅读UFW + Docker的危险
我的目标是建立一个类似的系统
Host (running ufw) -> docker container 1 - nginx (as a reverse proxy)
-> docker container 2 - node web 1
-> docker container 3 - node web 2
-> .......
Run Code Online (Sandbox Code Playgroud)
我想通过ufw管理传入流量(例如限制访问),因此我不希望docker触摸我的iptables.这是我的测试
环境:
--iptables=false
已添加到Docker守护程序中.第一次尝试
docker run --name ghost -v /home/xxxx/ghost_content:/var/lib/ghost -d ghost
docker run --name nginx -p 80:80 -v /home/xxxx/nginx_site_enable:/etc/nginx/conf.d:ro --link ghost:ghost -d nginx
Run Code Online (Sandbox Code Playgroud)
没运气.第一个命令没问题,但第二个命令会抛出错误
Error response from daemon: Cannot start container
Run Code Online (Sandbox Code Playgroud)
第二次尝试
然后我发现了这个:无法用--iptables = …
这是一个非常基本的问题,但我有点挣扎,并希望确保我理解正确.
从映像启动容器并对其中的文件进行一些更改后(即:存储在容器上运行的WebApp的数据库中的某些数据),在容器停止和重新启动之间继续使用相同日期的适当方法是什么?
我的理解是正确的,一旦容器停止/完成(即:在交互式会话后退出),那么该容器与所有文件更改一起消失了吗?因此,如果我想保留一些文件更改,我必须将容器的状态提交到图像的新图像/新版本中?
谢谢,朱利安