![]() |
1
5
我很肯定,这里的答案是相当强调的
“没有”
. 根据你的定义,
你可能想研究一下
|
![]() |
2
5
另外还有 Boost Pointer Container library ,它为指针的异常安全处理提供容器。 |
![]() |
3
4
标准上说
http://www.gotw.ca/gotw/054.htm 有一些关于如何度量性能的提示,尽管您可能有一个特定的用例,所以这就是您应该度量的。
编辑:想想看,我的“读者练习”在有人这样做的情况下是不太正确的
更好的代码,不太热衷于内存访问模式(但是,我不清楚性能是否是一个问题,因为您担心
|
![]() |
4
3
正如您所发现的,所有标准容器都与您的要求不兼容。如果我们可以做一些额外的假设,那么编写自己的容器就不会太难了。
开始吧。我把许多细节留给你。
另外,如果有人问你为什么要这样做,告诉他们你需要一个数组
|
![]() |
5
2
所有标准容器都需要可复制的元素。至少是因为push\u back和insert复制了传递给它们的元素。我不认为你能逃脱std::deque,因为即使它的resize方法也需要复制参数来填充元素。 shared_ptr 或者各种各样的 boost pointer containers 可以让它更容易。 否则,如果你认为任何一个都不适合你的需要,那么你可以试着用你自己的容器来做你想做的事情。(或者做更多的调查,看看是否有人做过这样的事。) |
![]() |
6
1
您不应该根据容器处理内存的方式来选择容器。例如,deque是一个双端队列,所以您应该只在需要双端队列时使用它。
如果调整大小,几乎每个容器都会分配内存!当然,你可以通过打电话预先改变容量
显然,如果你超过了你的能力,仍然会有一个分配。 |
![]() |
7
0
看看
两者兼得
|
![]() |
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
![]() |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
![]() |
rainer · 后台插入程序的初始化 1 年前 |
![]() |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
|
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
|
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |