File indexing completed on 2026-04-09 07:49:39
0001 #pragma once
0002
0003 #include <string>
0004 #include <vector>
0005 #include <algorithm>
0006
0007 struct slist
0008 {
0009 static bool Contains(const std::vector<int>& idx, int lvid );
0010 static void FindIndices(std::vector<int>& idx, const std::vector<std::string>& name, const char* q );
0011 static int FindIndex(const std::vector<std::string>& name, const char* q );
0012 };
0013
0014
0015 inline bool slist::Contains(const std::vector<int>& idx, int lvid )
0016 {
0017 return std::find( idx.begin(), idx.end(), lvid ) != idx.end() ;
0018 }
0019
0020 inline void slist::FindIndices(std::vector<int>& idx, const std::vector<std::string>& name, const char* q )
0021 {
0022 unsigned num_name = name.size();
0023 for(unsigned i=0 ; i < num_name ; i++)
0024 {
0025 const char* n = name[i].c_str() ;
0026 if(strcmp(q,n) == 0) idx.push_back(i) ;
0027 }
0028 }
0029 inline int slist::FindIndex(const std::vector<std::string>& name, const char* q )
0030 {
0031 std::vector<int> idx ;
0032 FindIndices(idx, name, q );
0033 return idx.size() == 1 ? idx[0] : -1 ;
0034 }
0035
0036