私は次のコードを持っています:
std::vector<std::string> GetSameID(std::vector<string>& allFiles, int id) {
std::vector<std::string> returnVector;
for(std::vector<string>::iterator it = allFiles.begin(); it != allFiles.end(); ++it) {
if(GetID(*it) == id) {
int index = (*it).find("_CH2.raw");
if(index > 0) {
continue; //this works
}
if(0 < ((*it).find("_CH2.raw"))) {
continue; //this doesn't
}
string ext = PathFindExtension((*it).c_str());
if(ext == ".raw") {
returnVector.push_back(*it);
}
}
}
return returnVector;
}
私の問題は、なぜif(0 < ((*it).find("_CH2.raw")))
そのように機能しないのですか? 私のファイルは ID_0_X_0_Y_128_CH1.raw ID_0_X_0_Y_128_CH2.raw という名前です (オシロスコープのチャネル 1 とチャネル 2 の ID、X と Y が異なります)。
長い道のりを行うと(インデックスを割り当ててからインデックスをチェックする)、機能しますが、読みやすいショートバージョンが機能しない理由がわかりません。