gpt4 book ai didi

c++ - 在 vector 中添加相邻字符

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:32:16 25 4
gpt4 key购买 nike

所以我正在尝试创建一个代码来添加 vector 中的相邻数字。我实际上已经弄清楚了挑战并设法生成了满足我要求的代码,但是在使用它时我发现了一些我不理解的令人费解的地方。

简要说明或我试图实现的目标:用户应该输入他们想要的任意整数。这些数字应该以相同的顺序存储在数组中。

在此示例中,我们使用整数 [1]、[2]、[3]、[4] - 因为它们很容易相加。

下面的代码使用了两个 for 循环,第一个索引 (i1) 从 holder[0] 开始,另一个从 holder[1] 开始的循环索引 (i2)。这是为了使两个索引始终彼此相邻。

在我输出 holder[0] + holder[1] 的总和(等于 3)之后两个索引都应该增加 2,这会将它们的位置移动到 holder[2] 和 holder [3],在它们增加后它们的值的总和应该是 7。因为 holder[2] 和 holder[3] 有值分别为 3 和 4。

经过深思熟虑,我的输出应该是:3 7然而,当下面的代码执行时,我的输出是:3 5 5 7

我不明白幕后发生了什么?谁能解释一下我做错了什么

当我输入下面的代码时:

vector<int> holder;
int number;

while (cin >> number)
{
holder.push_back(number);
}

for(decltype(holder.size()) i1 = 0; i1 <= holder.size() - 2; i1 = i1 + 2)
{
for(decltype(holder.size()) i2 = 1; i2 <= holder.size() - 1; i2 = i2 + 2)
{
cout << holder[i1] + holder[i2] << " ";
}
}

最佳答案

你不需要两个循环。那只是在混淆逻辑。如果您只想打印成对的总和,请明确说明:

for (size_t i = 0; i < holder.size() - 1; i += 2) {
cout << holder[i] + holder[i+1] << " ";
}

这将显式打印 holder[0] + holder[1],然后是 holder[2] + holder[3],等等。

关于c++ - 在 vector 中添加相邻字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27595149/

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