gpt4 book ai didi

c++ - 容器的分配函数可能会溢出吗?

转载 作者:搜寻专家 更新时间:2023-10-31 01:59:57 27 4
gpt4 key购买 nike

我今天遇到了这个问题,认为我应该发布它以供社区引用和/或意见。

标准的 C++ 容器 vector、deque、list 和 string 提供了一个 assign 成员函数。有两个版本;我主要对接受迭代器范围的那个感兴趣。 Josuttis book它的描述有点模棱两可。从第237...

Assigns all elements of the range [beg,end); this is, is replaces all existing elements with copies of the elements of [beg,end).

它没有说明如果受让人容器的大小与被分配的范围不同会发生什么。它会截断吗?它会自动扩展吗?是未定义的行为吗?

最佳答案

这是我发现的。事实证明,我不必担心默默地做错事。标准再次给出了答案。来自第 23.2.6.1 节:

void assign(Iter first, Iter last);

Effects:

erase(begin(), end());

insert(begin(), first, last);

所以它实际上只是一个 clear() 后跟一个完整范围的 insert 的快捷方式。

关于c++ - 容器的分配函数可能会溢出吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2539081/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com