首页 > 后端开发 > C++ > `vector::resize()` 在 C 03 中与标准和 Boost 容器库的行为有何不同?

`vector::resize()` 在 C 03 中与标准和 Boost 容器库的行为有何不同?

Susan Sarandon
发布: 2024-12-01 08:04:10
原创
695 人浏览过

How Does `vector::resize()` Behave Differently in C  03 with Standard and Boost Container Libraries?

C 11 vector::resize() 标准和 Boost 容器库的行为

vector::resize() 在 C 中进行了大修11 提供对元素初始化的更精细的控制。然而,人们对其在 C 03 模式下的标准库和 Boost.Container 下的行为提出了担忧。

标准库

向量::resize() C 11 之前的标准库中的函数允许通过传递值来初始化元素。然而,在 C 11 中,该函数被分为两个重载:一个用于值初始化,另一个用于通过复制进行初始化。

Boost.Container

Boost.Container 也提供了 vector::resize() 的三种重载:值初始化、默认初始化(Boost 特定功能)和通过以下方式初始化

观察

最近的测试表明,标准库和 Boost.Container 中的 resize() 行为与 C 03 模式下的预期不一致。虽然理想情况下 resize() 在所有三个测试(值、默认和复制初始化)中的行为应该相同,但结果表明,只有专门请求默认初始化的测试才会产生所需的输出。

结论

行为上的差异表明 C 11 中的 vector::resize() 接口更改可能尚未完全生效,因为在在标准和 Boost.Container 测试中,最终的 resize() 调用仍然使用零进行初始化,而没有显式的默认初始化。需要进一步调查以确定此行为的原因。

以上是`vector::resize()` 在 C 03 中与标准和 Boost 容器库的行为有何不同?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板