gpt4 book ai didi

c++ - 比较两个 vector 可能会给我一个错误

转载 作者:太空宇宙 更新时间:2023-11-04 14:33:21 25 4
gpt4 key购买 nike

所以这背后的想法是用户输入一条消息,然后消息被翻译成摩尔斯电码。这是我今天已经完成了 8 个多小时的家庭作业。这也是我第一次认真地与类(class)打交道。

运行时,我在第 64 行只收到一个错误。我收到的错误没有任何意义(而且它是 huuuuge,所以我不想包括它,除非被问到)。我怀疑问题是 originalMessage vector 和 alphaCode vector 是不同的 vector 类型(分别是字符串和字符)。

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

class Code
{
private:
vector<char> alphaCode;
vector<string> morseCode;
vector<string> originalMessage;
vector<string> finalMessage;
public:
Code();
void encoder(vector<string> input);
void display();
};

Code::Code():alphaCode(), morseCode(28)
{
//Building alphaCode
for (char c='A'; c<='Z'; c++) alphaCode.push_back(c);
alphaCode.push_back(' ');
alphaCode.push_back('.');

//Building morseCode
morseCode[0] =".-";
morseCode[1] ="-...";
morseCode[2] ="-.-.";
morseCode[3] ="-..";
morseCode[4] =".";
morseCode[5] ="..-.";
morseCode[6] ="--.";
morseCode[7] ="....";
morseCode[8] ="..";
morseCode[9] =".---";
morseCode[10] ="-.-";
morseCode[11] =".-..";
morseCode[12] ="--";
morseCode[13] ="-.";
morseCode[14] ="---";
morseCode[15] =".--.";
morseCode[16] ="--.--";
morseCode[17] =".-.";
morseCode[18] ="...";
morseCode[19] ="-";
morseCode[20] ="..-";
morseCode[21] ="...-";
morseCode[22] =".--";
morseCode[23] ="-..-";
morseCode[24] ="-.--";
morseCode[25] ="--..";
morseCode[26] =".......";
morseCode[27] ="x";
}

void Code::encoder(vector<string> input)
{
originalMessage = input;
for (int i = 0; i < originalMessage.size(); i++)
{
for (int j = 0; j < alphaCode.size(); j++)
{
if (originalMessage[i] == alphaCode[j])
{
finalMessage.push_back(morseCode[j]);
finalMessage.push_back(" ");
}
}
}
}

void Code::display()
{
for (int x; x < finalMessage.size(); x++) cout << finalMessage[x];
}

//------------------------------------------------------------------------------

int main()
{
vector<string> message;
string temp;

cout << "Input:" << endl;
cin >> temp;
message.push_back(temp);

Code c1;
c1.encoder(message);
c1.display();

}

最佳答案

您的源代码中有几个问题。第一个问题是消息变量:

vector<string> message;

可以改为:

string message;

并根据此更改更改代码的其他部分。

第二个问题回到

for (int x; x < finalMessage.size(); x++) cout << finalMessage[x];

变量 x 没有被初始化,初始化它或者像这样写一个更好的循环:

for (const auto& x : finalMessage) cout << x;

关于c++ - 比较两个 vector 可能会给我一个错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42128254/

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