gpt4 book ai didi

c++ - 在 C++ 中,如果我有一个 vector 类型的 vector ,如果我在 : vector_variable. push_back() 之后执行此操作会发生什么?

转载 作者:行者123 更新时间:2023-11-28 02:32:36 25 4
gpt4 key购买 nike

std::vector<std::vector<Point2d> > components;

其中 Point2d 是一个结构:

struct Point2d {
int x;
int y;
};

std::vector<Point2d> tmp;
components.push_back( tmp );// What does this line do?

我知道问题出在我对 C++ vector 的理解上。据我所知:在上面的代码中,Components 是 vector 的 vector 。内部 vector 是 Point2d 类型。内部 vector 类型的外部 vector 组。

在上面的代码中..Components.push_back(tmp)是做什么用的?

最佳答案

components 的大小增加 1。components 的最后一个元素是 Point2d 的 vector 。此 vector 是从空的 tmp 复制的。在 push_back 操作期间, vector components 可能需要重新分配存储,这可能会复制其元素并使其迭代器无效。

关于c++ - 在 C++ 中,如果我有一个 vector 类型的 vector ,如果我在 : vector_variable. push_back() 之后执行此操作会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28545906/

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