Questions tagged «stl»

10
在C ++中对向量使用列表的意义是什么?
我已经运行了3个涉及C ++列表和向量的不同实验。 事实证明,即使在中间涉及很多插入操作,带有向量的操作也更加有效。 因此,出现了一个问题:在哪种情况下列表比矢量有意义? 如果向量在大多数情况下似乎更有效率,并考虑其成员的相似程度,那么列表还有哪些优势? 生成N个整数并将其放入容器中,以便容器保持排序状态。通过逐个读取元素并在第一个较大的元素之前插入新的元素,已天真地执行了插入操作。 与向量相比,有了清单,尺寸增加时,时间就会流逝。 在容器的末尾插入N个整数。 对于列表和向量,时间增加了相同的数量级,尽管向量快3倍。 在容器中插入N个整数。 启动计时器。 使用list.sort来排序容器,使用std :: sort来对容器进行排序。停止计时器。 同样,时间以相同的数量级增加,但使用向量平均要快5倍。 我可能会继续进行测试,并找出几个清单可以证明更好的例子。 但是你们阅读此消息的共同经验可能会提供更有成效的答案。 您可能遇到过这样的情况,其中列表更易于使用或执行得更好?

3
使用struct和std :: pair之间有什么区别?
我是经验有限的C ++程序员。 假设我想使用STL map存储和操作某些数据,我想知道这两种数据结构方法之间是否存在任何有意义的差异(在性能上): Choice 1: map<int, pair<string, bool> > Choice 2: struct Ente { string name; bool flag; } map<int, Ente> 具体来说,使用a struct而不是simple会产生任何开销pair吗?

7
在大型应用中应避免使用STL吗?
这听起来像是一个很奇怪的问题,但是在我的部门中,我们遇到以下问题: 我们正在开发一个服务器应用程序,该应用程序正在变得越来越大,即使是在考虑将其拆分为不同部分(DLL文件)时,也可以在需要时动态加载,然后再卸载,以便能够处理性能问题。 但是:我们正在使用的函数将输入和输出参数作为STL对象传递,并且正如Stack Overflow答案中所述,这是一个非常糟糕的主意。(该帖子包含一些解决方案和技巧,但看起来并不十分牢固。) 显然,我们可以用标准C ++类型替换输入/输出参数,并从函数内部的那些对象创建STL对象,但这可能会导致性能下降。 是否可以得出结论,如果您正在考虑构建一个可能会增长到一台PC无法再处理的应用程序,您绝对不能将STL用作一项技术吗? 有关此问题的更多背景:该问题 似乎有一些误解:问题如下: 我的应用程序正在使用大量性能(CPU,内存)以完成其工作,我想分拆此工作分解为不同的部分(由于程序已经被拆分为多个功能),从我的应用程序中创建一些DLL并将某些功能放入这些DLL的导出表并不难。这将导致以下情况: +-----------+-----------+---- | Machine1 | Machine2 | ... | App_Inst1 | App_Inst2 | ... | | | | DLL1.1 | DLL2.1 | ... | DLL1.2 | DLL2.2 | ... | DLL1.x | DLL2.x | ... +-----------+-----------+---- App_Inst1是安装在Machine1上的应用程序的实例,而App_Inst2是安装在Machine2上的同一应用程序的实例。 DLL1.x是安装在Machine1上的DLL,而DLL2.x是安装在Machine2上的DLL。 DLLx.1涵盖了导出的function1。 DLLx.2涵盖了导出的function2。 现在在Machine1上,我想执行function1和function2。我知道这会使Machine1重载,所以我想向App_Inst2发送一条消息,要求该应用程序实例执行function2。 …
24 c++  stl 

3
QT-C ++与通用C ++和STL [关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为软件工程堆栈交换的主题。 5年前关闭。 最近在Ubuntu QQ上刷了我的C ++。我喜欢所有事物的Qt框架,尤其是构建GUI的框架。在过去几年中使用PyQt时,我对它非常熟悉。 当使用PyQt时,我遇到了一些问题,现在将C ++与Qt一起使用时,问题更加明显:Qt对Qt特定的C ++有很多扩展 -QString只是一个常见的例子,更不用说自动垃圾收集了。完全不了解C ++和STL的情况下,可以使用C ++编写Qt应用程序。 我可能很快就要再次进入就业市场,我希望能够考虑C ++的职位-但我担心自己过多地与Qt绑定会限制我使用通用C ++的能力,这曾经非常强大,但是现在长期处于休眠状态且生锈。 我应该避免Qt吗?使用WxWidgets或GTK ++构建GUI会更好吗? 什么是可以使用的最佳GUI框架,该框架允许/要求最多使用通用C ++和STL?在GUI框架等方面,我如何使自己作为C ++程序员最有市场价值?
19 c++  qt  stl  gtk  pyqt4 

6
在C ++开发中放弃STL是否可行?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 我知道在某些领域(例如游戏行业),不建议使用STL。所以我的问题是:在某些情况下不使用STL是否真的是一个好习惯?如果是这样,不使用现代C ++的STL的最大原因是什么?
19 c++  stl 

1
std :: vector <bool>是怎么产生的?
如今,几乎所有的C ++开发人员都同意这std::vector&lt;bool&gt;是一个错误,因为它显然不是容器,而且其用例std::bitset无论如何都与大多数情况重叠。 它是如何被选为标准的?当时有争议吗?主要的支持论据是什么?
15 c++  history  stl 

5
如何设计例外
我正在努力解决一个非常简单的问题: 我现在正在服务器应用程序上工作,我需要为异常创建一个层次结构(某些异常已经存在,但是需要一个通用框架)。我什至如何开始这样做? 我正在考虑遵循以下策略: 1)出了什么问题? 有人问,这是不允许的。 要求进行某些操作,这是允许的,但由于参数错误而无法使用。 有人问,这是允许的,但是由于内部错误,它不起作用。 2)谁在发起请求? 客户端应用 另一个服务器应用程序 3)消息处理:在处理服务器应用程序时,这全都与接收和发送消息有关。那么,如果发送消息出错了怎么办? 这样,我们可能会得到以下异常类型: ServerNotAllowedException ClientNotAllowedException ServerParameterException ClientParameterException InternalException(如果服务器不知道请求来自何处) ServerInternalException ClientInternalException MessageHandlingException 这是定义异常层次结构的非常通用的方法,但恐怕我可能缺少一些明显的案例。您是否对我不涉及的领域有想法,是否知道此方法的任何缺点,或者是否有更一般的方法来解决此类问题(在后一种情况下,在哪里可以找到它)? 提前致谢
11 design  c++  exceptions  stl 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.