gpt4 book ai didi

c++ - 在不创建临时一维 vector 的情况下将一维 vector 插入二维 vector

转载 作者:行者123 更新时间:2023-11-28 00:30:59 34 4
gpt4 key购买 nike

这是我的代码。

vector<vector<string>> table;
vector<string> record;

// .....
record.push_back("Apple");
record.push_back("Orange");

table.push_back(record);

// ....

为了在 2D vector 中插入一行,我创建了一个名为 record 的新 1D vector 。我的问题是,“有没有办法在不创建一维 vector 的情况下将这些数据插入二维 vector ??”

最佳答案

有两种方法。第一种方法是使 table 成为指向 vector 的指针的 vector ,而不是 vector 的 vector 。即:

vector<vector<string>*> table

.. 然后将指向记录的指针堆叠起来而不是记录本身,这是非常小的。另一种方法是,如果你知道你不会再使用你的一维 vector ,你可以将它移动到表 vector 即:

table.push_back(std::move(record));

只要知道,从那时起,通过这种方式,特定记录对象将处于未定义状态,即不可用,除非在您的表中。

关于c++ - 在不创建临时一维 vector 的情况下将一维 vector 插入二维 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22935403/

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