问题标签 [containers]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
15436 浏览

inversion-of-control - 这在 Prism/Unity 中意味着什么:Container.Resolve()

(来自Prism V2 StockTrader 示例应用程序中的StockTraderRIBootstrapper.cs文件)

这有什么区别:

还有这个:

  • 我知道第二个示例是将容器视为工厂,走到它面前说“我需要一个 ShellPresenter 类型的实例化对象”。
  • 但是,如果,例如我需要发送参数,什么是“new ShellPresenter(1, true)”等的等价物呢?
  • 而且由于容器必须被告知 ShellPresenter,我希望在项目中的某个地方找到 ShellPresenter 类向容器注册的地方,例如,我期待

像这样的东西:

但无处可寻。那么容器如何知道这些类型以便它能够解决它们呢?我在自己的项目中重建了它并得到“依赖项的解决失败”错误,那么我需要在哪里注册这个依赖项?

这里的任何方向/讨论都会有所帮助。

无法解释的答案:

因此,在引导程序中,当我注册 Shell 本身时:

那么 Container 可以解析 ShellPresenter 类型。那么我注册Shell类型的时候, ShellPresenter类型是怎么注册的呢?

令人惊讶的答案:

好的,事实证明,您不必注册您尝试解析的类型,但您必须注册传递给您尝试解析的类型的构造函数的参数(接口)类型,即因为我注入IShellView 接口到我的 ShellPresenter 的构造函数中,我需要注册 IShellView 类型而不是 IShellPresenter 类型:

我通过尝试解析类型Tester对此进行了测试:

只要我将SomeClass注入它的构造函数:

在向容器注册SomeClass之前,我得到未解决的依赖错误:

然后它工作。这既令人惊讶,又具有教育意义。需要沉下心来。我要去喝杯咖啡,想一想。

如果有人能详细说明为什么会这样,将不胜感激。

0 投票
9 回答
128954 浏览

c++ - 在c ++中返回指向向量元素的指针

我在全局范围内有一个 myObjects 向量。我有一种方法,它使用 astd::vector<myObject>::const_iterator来遍历向量,并进行一些比较以找到特定元素。一旦我找到了所需的元素,我希望能够返回一个指向它的指针(向量存在于全局范围内)。

如果我 return &iterator,我是返回迭代器的地址还是迭代器指向的地址?

我是否需要将const_iteratorback 转换为 myObject,然后返回它的地址?

0 投票
2 回答
952 浏览

stl - 自定义 STL 容器

我编写了代码,允许按照输入的顺序遍历映射数据。

我编码了几次的解决方案是:

给定键类型 K 和数据类型 D,std::map std::vector

如果想随机查找数据条目,请使用map.find(K). 如果想按入口顺序遍历地图,请使用std::vector::iterator (begin(), end()].

这很好,但作为练习,我想把它写成'OrderedMap'一个符合 STL 的容器。我也有(精简到这个讨论):

进一步假设

以下代码有效:

但是,此代码不会:

假设我做了某事 a) 结构愚蠢或 b) 不必要的复杂,应该怎么做?

我意识到我很可能在这里重新发明轮子,但同样,这项工作主要是为了增加我对 STL 容器、它们的设计模式和正确使用的知识。

提前感谢您的任何见解,

0 投票
2 回答
9909 浏览

.net - 最佳字符串容器:StringCollection、Collection, 列表, 数组列表, ..?

什么是最合适的容器,仅用于保存在具有未确定上边界的某个数组中的字符串,该数组的长度在其创建时是未知的。

对于简单的代码,例如:

它是StringCollection作为字符串的优化集合,还是只是Collection<string>or List<string>or ArrayList?他们之间有什么不同?

0 投票
4 回答
3284 浏览

image - 右浮动和容器 div

我在一个容器 div 中有 3 个 div。第一个向左浮动,第二个向右浮动,最后一个位于中间。这会在一个容器 div 中创建 3 个大约均匀的 div。

在这些 div 中的每一个中,我都放置了不同高度的图像。然后有一个单独的 div 位于容器 div 下方,它将是全宽(称为描述 div)。

我希望容器 div 拉伸到最大图像 div 的高度,以便描述 div 很好地位于图像下方。目前,当左侧浮动和中间 div 包含最大的图像但不适用于右侧浮动 div 时,此方法有效。我不明白为什么或我缺少任何帮助将不胜感激。

注意:我试图在不使用任何绝对值的情况下执行此操作,仅使用百分比。所以我不想向容器 div 声明绝对高度!clear's 也不起作用,因为这被简化了,实际上还有很多其他的 div 容器围绕着所有这些等等,除非你可以只清除上面嵌套 div 中的浮动。

这是代码:

在此先感谢您的帮助,尽量保留我头上的头发!

0 投票
9 回答
3541 浏览

c++ - C++ STL:哪种迭代 STL 容器的方法更好?

这对你们中的一些人来说可能看起来很无聊,但是以下两种在 STL 容器上的迭代方法中哪一种更好?为什么

方法 0 看起来像更干净的 STL,但方法 1 用更少的代码实现了相同的效果。对容器的简单迭代在任何源代码中随处可见。所以,我倾向于选择方法 1,它似乎可以减少视觉混乱和代码大小。

PS:我知道迭代器可以做的不仅仅是一个简单的索引。但是,请让回复/讨论集中在容器上的简单迭代上,如上所示。

0 投票
2 回答
2119 浏览

unity-container - Is it possible to configure ms Unity container from an xml document and NOT from a file?

Is it possible to configure ms Unity container from an xml document and NOT from a file?

0 投票
2 回答
39469 浏览

c++ - 如何在 C++ 中反向迭代地图?

我在 GCC C++ 中的地图上反向迭代时遇到了麻烦。当我使用反向迭代器时,似乎我无法为它分配任何东西 - 编译器抱怨。我正在使用前向迭代器处理一些尴尬的代码,但它不是很优雅。有什么想法吗?

0 投票
9 回答
8535 浏览

c - 纯 C 中的“多用途”链表实现

这不完全是一个技术问题,因为我知道 C 足以做我需要做的事情(我的意思是,就不要'让语言妨碍你'而言),所以这个问题基本上是一个'什么方向采取'的问题。

情况是:我目前正在学习高级算法课程,为了“成长为程序员”,我被要求使用纯 C 来实现实际作业(效果很好:几乎你犯的任何小错误实际上都会强制你要完全理解你在做什么来修复它)。在实现过程中,我显然遇到了必须从头开始实现“基本”数据结构的问题:实际上不仅是链表,还有堆栈、树等。

我专注于本主题中的列表,因为它通常是我最终在程序中使用很多的结构,作为“主”结构或作为其他更大结构的“辅助”结构(例如,解析的哈希树使用链表产生冲突)。

这要求列表存储许多不同类型的元素。我在这里假设我不想为每种类型重新编码列表。所以,我可以想出这些替代方案:

  • 制作一个 void 指针列表(有点不优雅;更难调试)
  • 只制作一个列表,但有一个联合作为“元素类型”,包含我将在程序中使用的所有元素类型(更易于调试;如果元素大小不同,则会浪费空间)
  • 使用预处理器宏以SGLIB的样式为每种类型重新生成代码,“模仿”C++ 的 STL(创造性的解决方案;不浪费空间;元素在返回时具有它们实际的显式类型;列表中的任何更改代码真的很戏剧化
  • 你的想法/解决方案

把问题说清楚:以上哪一个是最好的?

PS:由于我基本上是在学术环境中,我也对业内使用纯 C 的人的观点非常感兴趣。我知道大多数纯C程序员都在嵌入式设备领域,我认为我面临的这种问题并不常见。但是,如果有人知道它是如何“在现实世界中”完成的,我会对您的意见非常感兴趣。

0 投票
2 回答
424 浏览

sysadmin - 创建 solaris 区域

对于这些部分:

zonecfg:[区域名称]:net> 设置地址= zonecfg:[区域名称]:net> 设置物理=

我怎么知道我应该设置什么样的值?

我正在使用 vmware 机器打开 solaris 并当前设置区域。

我希望能够进入那个区域。

谢谢