从向量获取值

时间:2019-01-26 15:18:27

标签: c++

我的代码在输入字符串后出现错误。我需要输入一个字符串(例如添加水果),然后通过“ add”关键字将其放入我的向量中。但是当我也输入一个单词(例如print)时,就可以打印矢量中的元素。它不会工作。有见识吗?

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


vector <string> separate(string str){
   string word = "";
   vector <string> v = {0,0};
   for (auto x : str)
   {
       if (x == ' ')
       {
           v[1] = word;
           word = "";
       }
       else
       {
           word = word + x;
       }
   }
    v[0] = word;
    return v;

}

int main(){


    string user_input, command, item;
    int cmds;
    vector <string> result;



    while (1){
        cout << "Enter a command: ";
        getline(cin, user_input);

        vector <string> arrcmd = separate(user_input);
        (arrcmd.size() == 1) ? (command = arrcmd[0]) : (command = arrcmd[1], item = arrcmd[0]);
        cout << arrcmd.size() << endl;

 /*       command = arrcmd[0], item = arrcmd[1];   */
        cout << command << " " << item << endl;

1 个答案:

答案 0 :(得分:1)

vector <string> v = {0,0};创建一个包含两个元素的向量。因此,separate始终返回大小为2的向量-只是并不总是填充其第二个元素。

main尝试根据向量大小进行决策-但从未采用size() == 1路径。