возвращение нескольких строк из функции - PullRequest
1 голос
/ 03 февраля 2012

У меня есть функция, в которой я хочу иметь возможность вернуть распечатанное, чтобы я мог распечатать вывод на странице. Как я верну обе строки, которые выводятся в обоих операторах if?

 std::vector<std::string> el;
      split(el,message,boost::is_any_of("\n"));
      std::string a ("");

          for(int i = 0; i < el.size(); i++)
          {
              if(el[i].substr(0,3) == ".X/")
              {
                  DCS_LOG_DEBUG("--------------- Validating .X/ ---------------")
                  std::string str = el[i].substr(3);
                  std::vector<std::string>st;
                  split(st,str,boost::is_any_of("/"));
                  boost::regex const string_matcher(splitMask[0]);
                  if(boost::regex_match(st[0],string_matcher))
                  {
                      a = "Correct Security Instruction";

                  }
                  else
                  {
                      a = "Incorrect Security Instruction" 
                  }

                  boost::regex const string_matcher1(splitMask[1]);
                  if(boost::regex_match(st[1],string_matcher1))
                  {
                     a = "Correct Security screening result" 
                  }
                  else
                  {
                      a = "Incorrect Security screening result" 
                  }


                  return a;

              }

          }

Спасибо за любую помощь:)

Ответы [ 4 ]

3 голосов
/ 03 февраля 2012

Определите класс с двумя подходящими именами строковых членов и верните экземпляр этого.

Затем начните думать о том, какие методы или другие данные было бы полезно иметь в этом классе.

3 голосов
/ 03 февраля 2012

Например, вы можете вернуть std::pair строк.

0 голосов
/ 03 февраля 2012

Я бы вернул std::pair из bool значений (одно, чтобы указать, верна ли инструкция, и одно, чтобы указать, верны ли результаты проверки), и позволить вызывающему коду интерпретировать результаты.

0 голосов
/ 03 февраля 2012

Вы можете вставить строки в std :: vector, который передается функции в качестве ссылки, а затем выполнить итерацию по вектору по возвращении.

...