我正在尝试创建一个函数,该函数在满足某些条件时将字符串添加到字符串向量中。但是,当不满足条件时,向量仍然会在向量上添加一些时间:一个空字符串。
功能:
vector<string> addLabel (string line, vector<string> mnemonics, vector <string> labels)
{
string word;
word= line.substr(0, line.find(' '));
if (find(mnemonics.begin(), mnemonics.end(), word) != mnemonics.end())
{
return labels;
}
else
{
labels.push_back(word);
return labels;
}
}
并在此循环内调用该函数:
vector <string> labels {};
while (ReadFile.good())
{
getline(ReadFile, line);
labels = addLabel(line, mnemonics, labels);
}
读取的文件是汇编代码:
bipush 10
istore j
bipush 10
istore k
iload j
iload k
iadd
istore i
iload i
bipush 25
if_icmpeq l1
iload j
bipush 1
isub
istore j
goto l2
l1 bipush 13
istore k
l2 bipush 25
该向量应该只具有“ l1”和“ l2”,但是,当我检查向量的大小(它是21)时,它包括所有满足“ if”条件的字符串(19)。 vector充满了空字符串(19)以及输入“ else”的字符串(2)。