gpt4 book ai didi

c++ - 如何将两个对象作为一个元素添加到 vector 中?

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

我在这里写了一段代码来理解一个问题。该程序应该询问您要将多少个数字存储在一个名为 vNumbers 的 vector 中,然后继续创建一个长度为 iNumbers 的 vector (您选择的迭代次数)。然后,您将输入您的第一个数字,该数字将被推回到 vNumbers 中,然后询问您想要输入多少个字母(对于每个数字),这些字母将存储在 vector vLetters 中。之后它应该打印出 vNumbers 和 vLetters 中的内容。我可以让程序接受 1 个字母代表 1 个数字,但我不能让它接受多个字母代表 1 个数字。例如,如果我这样做

Please enter how many numbers you'd like to add:

2

Please enter #1

100

how many letters would you like to add (for number 100)

2

Please enter a letter

A

Please enter a letter

B

Please enter #2

200

How many letters would you like to add (for number 200)

1

Please enter a letter

C

我应该得到这个

You have entered:

100 A B

200 C

相反,我得到的是这个,我不确定为什么。

100 AB

200 ABC

#include <iostream>
#include <string>
#include <cctype>
#include <vector>
#include <algorithm>
using namespace std;



int main()
{
string sLetters, sLettersB, sLettersC, sLettersA, sNumbers;
vector<string> vLetters, vNumbers;
int iLetters, iNumbers;

cout << "how many NUMBERS would you like to add? ";
cin >> iNumbers;
cin.ignore();
for (int j = 0; j < iNumbers; j++)
{
cout << j + 1 << "# Enter number ";
getline(cin, sNumbers);
vNumbers.push_back(sNumbers);

cout << "how many LETTERS would you like to add to " << j + 1 << "#? ";
cin >> iLetters;
cin.ignore();
for (int i = 0; i < iLetters; i++)
{
cout << "Enter letter";
getline(cin, sLettersA);
sLetters += sLettersA;

}
vLetters.push_back(sLetters); // How ever many letters are in sLetters should be added to n-1 index # in vector vLetters
}
for (int x = 0; x < vLetters.size(); x++)
{
cout << vNumbers[x] << "\t \t" << vLetters[x] << endl;


}
return 0;
}

最佳答案

您的代码有错误。请参阅下面的评论

    for (int i = 0; i < iLetters; i++)
{
cout << "Enter letter";
getline(cin, sLettersA);
sLetters += sLettersA; // sLetters is defined outside for loop and no space

}

因此您可以在第一个 for 循环中定义 sLetters 或使用 clear()

    sLetters.clear();
for (int i = 0; i < iLetters; i++)
{
cout << "Enter letter";
getline(cin, sLettersA);
sLetters += ' ' + sLettersA;
}

或者删除第3行的sLetters,稍后再定义

    string sLetters;
for (int i = 0; i < iLetters; i++)
{
cout << "Enter letter";
getline(cin, sLettersA);
sLetters += ' ' + sLettersA;
}

关于c++ - 如何将两个对象作为一个元素添加到 vector 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26331763/

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