mirror of https://github.com/IoTcat/LoRa-mqtt.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
77 lines
1.5 KiB
77 lines
1.5 KiB
5 years ago
|
#ifndef __STRINGVEC__
|
||
|
#define __STRINGVEC__
|
||
|
|
||
|
|
||
|
|
||
|
#ifndef MAX_STRINGVEC_SIZE
|
||
|
#define MAX_STRINGVEC_SIZE 10
|
||
|
#endif
|
||
|
|
||
|
class StringVec{
|
||
|
public:
|
||
|
StringVec():_size(0){
|
||
|
this->clear();
|
||
|
};
|
||
|
|
||
|
inline void PushBack(const String& ss){
|
||
|
if(this->Size() == MAX_STRINGVEC_SIZE){
|
||
|
this->shift();
|
||
|
}
|
||
|
this->_s[this->Size()] = ss;
|
||
|
this->_size ++;
|
||
|
}
|
||
|
|
||
|
const int Find(const String& ss){
|
||
|
for(unsigned i = 0; i < this->Size(); i ++){
|
||
|
if(this->_s[i] == ss){
|
||
|
return i;
|
||
|
}
|
||
|
}
|
||
|
return -1;
|
||
|
}
|
||
|
|
||
|
void Erase(const int& pos){
|
||
|
if(pos < 0 || pos >= this->Size()) return;
|
||
|
for(unsigned int i = pos+1; i < this->Size(); i ++){
|
||
|
this->_s[i-1] = this->_s[i];
|
||
|
}
|
||
|
this->_size --;
|
||
|
}
|
||
|
|
||
|
const String shift(){
|
||
|
String s = this->_s[0];
|
||
|
if(this->Size() != 0){
|
||
|
for(unsigned int i = 1; i < this->Size(); i ++){
|
||
|
this->_s[i-1] = this->_s[i];
|
||
|
}
|
||
|
this->_size --;
|
||
|
}
|
||
|
return s;
|
||
|
}
|
||
|
|
||
|
void clear(){
|
||
|
for(unsigned int i = 0; i < this->Size(); i ++){
|
||
|
this->_s[i] = "";
|
||
|
}
|
||
|
}
|
||
|
|
||
|
inline const int Size(){
|
||
|
return this->_size;
|
||
|
}
|
||
|
|
||
|
|
||
|
String& operator[](int i){
|
||
|
if(i < 0 || i >= this->Size()) return this->_s[0];
|
||
|
return this->_s[i];
|
||
|
}
|
||
|
|
||
|
private:
|
||
|
String _s[MAX_STRINGVEC_SIZE];
|
||
|
int _size;
|
||
|
|
||
|
};
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
#endif //__STRINGVEC__
|