- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
std::map<int,bool> usedIds;
...
int SomeClass::GetNewId()
{
int nId = 1;
while( usedIds.find( nId ) != usedIds.end() ) nId++;
usedIds[nId] = true;
return nId;
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
Всего: 3
0
std::map<int,bool> usedIds;
...
int SomeClass::GetNewId()
{
int nId = 1;
while( usedIds.find( nId ) != usedIds.end() ) nId++;
usedIds[nId] = true;
return nId;
}
Таких map'ов несколько. Ищем неиспользованные циферки...
−1
AnsiString str = IntToHex((__int64) longvalue, 2); // 0x01020304
char _c[11];
char *ch = str.c_str();
int len = strlen(ch);
int _s = len;
int j = 0;
_c[j++] = '0';
_c[j++] = 'x';
while (_s >= 2) {
_c[j++] = ch[_s-2];
_c[j++] = ch[_s-1];
_s-=2;
}
if (len == 7) {
_c[j++] = '0';
_c[j] = ch[0];
}
_c[10] = '\0';
unsigned long pp;
char *pEnd;
pp = strtoul (_c, &pEnd, 16); // 0x04030201 - PROFIT!
Наслаждайтесь
+3
AnsiString Cut_the_path(AnsiString ExeName)
{
AnsiString Path = ExeName;
char *cp = Path.c_str(); int last = Path.Length()-1;
int i=last;
for(; i>=0; i--)
{
if( *(cp+i) == '\\' )
break;
Path.Delete(Path.Length(),1);
}
return Path;
}