Back to home page

EIC code displayed by LXR

 
 

    


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 ) // static
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 ) // static
0030 {
0031     std::vector<int> idx ; 
0032     FindIndices(idx, name, q ); 
0033     return idx.size() == 1 ? idx[0] : -1 ; 
0034 }
0035 
0036