std :: find не оценивается, как я ожидал.std :: find не работает как ожидалось
У меня есть вектор lexeme_ определяется как
static const std::string delimiters_[] = {" ", ",", "(", ")", ";", "=", ".", "*", "-"};
static std::vector<std::string> lexeme_(std::begin(delimiters_), std::end(delimiters_));
У меня есть оценка с использованием std::find
определяется как
while (std::find(lexeme_.begin(),lexeme_.end(),std::string(&commandLine_.at(position_))) == lexeme_.end())
{
// Concat each successive alphanumeric character to 'token'
token += commandLine_.at(position_);
// Update the index into 'commandLine'
position_ += 1;
}
Оценку должен сравнить char
в lexeme_ к char
в CommandLine, аналогичной это выражение Java
!lexeme.contains(Character.toString(commandLine.charAt(position)))
Оценка должна оцениваться char
s, и если она определяет char
в , то выполняется сравнение, затем цикл while будет завершен.
TestCase
#include<algorithm>
#include<iostream>
static const std::string delimiters_[] = {" ", ",", "(", ")", ";", "=", ".", "*", "-"};
static std::vector<std::string> lexeme_(std::begin(delimiters_), std::end(delimiters_));
std::string commandLine = "check me";
while (std::find(lexeme_.begin(),lexeme_.end(),std::string(&commandLine_.at(position_))) == lexeme_.end())
{
std::cout "I should stop printing when encountering a space ' ' << std::endl;
}
Можете ли вы построить полный тест-случай, чтобы продемонстрировать это? –
@DrewDormann нуждается в цитате. Как сказано, это смехотворно. Это, конечно, не «конечно» быстрее. – sehe
Так в чем проблема? Что делает этот код, и что вы ожидали от него, и как он делает, отличается от того, что вы ожидаете от него? Короче говоря, http://whathaveyoutried.com/ – jalf