← All posts tagged C++

GunnerKade
C++ ненависть В который раз уже попадаюсь на старый как мир подвох с unsigned типами:
for(unsigned int i=0; i<n; ++i)
{
if (i-1 >= 0)
a[i] = bla-bla-bla;
}
Разумеется (i-1 >= 0) будет всегда возвращать истину.
А все из-за того, что решил поиграться со Snipplets в gedit, в котором по умолчанию есть сниплет для конструкции for с unsigned счетчиком.
GunnerKade
C++ math algo Не думал, что мне когда-нибудь пригодятся знания с первого курса, конкретно про классическое доказательство равномощности множества рациональных и натуральных чисел.
Нужно было найти взаимнооднозначное соответствие между координатами узлов сетки неизвестных размеров и множеством чисел {0,1,2,...}. Вобщем, обходим сетку змейкой, и, таким образом, получаем то, что нужно. ru.wikipedia.org
И чтобы не забыть, код перевода туда и обратно:
int toN(int row, int col)
{
int d = col + row;
return ((d+1)*d)/2 + col;
}

void toR(int ind, int& row, int& col)
{
int sum=0, i=0;
while(ind > sum+i)
sum += ++i;

col = ind — sum;
row = i — col;
}
ind, row, col — 0-based
Попробуйте избавиться от цикла в toR.
P.S.: Странно — нет ни одного сообщения с тегом algo.
GunnerKade
C++ Qt как отождествить определенный сигнал класса (назовем его А) и сигнал Q объекта, являющегося членом этого класса? разумеется, без костыля в виде дополнительного слота у А.