gpt4 book ai didi

c++ - 将用户的 N 个元素添加到 vector 端线

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

我在使用 vector 在行尾添加元素时遇到问题。

我的结构:

struct process_s {
int type_id;
int line_id;
int product_id;
};

然后我使用以下方法将其转换为 vector :

std::vector<process_s> process_v;

我的下一步是填充两行:

       process_v.at(1).type_id = 1;
process_v.at(1).line_id = 1;
process_v.at(1).product_id = 2;

       process_v.at(2).type_id = 1;
process_v.at(2).line_id = 2;
process_v.at(2).product_id = 2;

从现在开始,我的目标是获取所有用户输入并添加到第一行 (1) 或第二行 (2) 的末尾。一旦获得所有数据,我将使用 ODD 和 EVEN 复制它,或者换句话说,我将第一行(1)复制到第三行(3),同样复制第二行(2)到第(4)行,数字行数也未知。

第一个问题是尝试从第一行或第二行末尾的用户输入中添加更多数据,尝试使用此方法:

process.at(1) = 1

或者

process(1).push_back = 1

从这一点开始,我需要将所有用户输入存储在相应的行中,一旦用户完成输入,就写一个这样的 TXT:

规范是针对这个类型的(type_id),需要在线(line_id),第一个产品需要(product_id),第二个(product_id)等...

这些都不起作用,有人会指出我缺少的东西吗?

多谢指教

最佳答案

默认情况下,当您创建一个 vector 时,它是空的,因此您不能引用 vector 中的“第一个”或“第二个”元素。

如果你知道你的 vector 应该有 2 个元素,你可以用 2 的大小初始化它:

std::vector<process_s> process_v(2);

然后你可以填充它:

   process_v.at(0).type_id = 1;
process_v.at(0).line_id = 1;
process_v.at(0).product_id = 2;

process_v.at(1).type_id = 1;
process_v.at(1).line_id = 2;
process_v.at(1).product_id = 2;

请注意, vector 在 C++ 中是从零开始的,因此您需要将第一行称为 process_v.at(0)(或 process_v[0])

如果您不知道您的 vector 应该有多大,您应该使用 push_backprocess_s 添加到您的 vector :

std::vector<process_s> process_v;

process_s p;
p.type_id = 1;
p.line_id = 1;
p.product_id = 2;

process_v.push_back(p);

或者

process_v.push_back(process_s{1,1,2});

或者

process_v.push_back({1,1,2});

关于c++ - 将用户的 N 个元素添加到 vector 端线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26735604/

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