向量添加空值

时间:2019-05-04 04:25:02

标签: c++

我正在尝试创建一个函数,该函数在满足某些条件时将字符串添加到字符串向量中。但是,当不满足条件时,向量仍然会在向量上添加一些时间:一个空字符串。

功能:

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)。

0 个答案:

没有答案