MaM: У & и * по 2 значения. В описании типа они означают "ссылка" и "указатель". for (auto &card : deck) означает что card это ссылка на элемент вектора. И да, итераторы тут скрыты от вас.
Второе значение при использовании в выражениях: buff(true,*card); *card -- получить значение по указателю card (Но это же вроде не указатель!) Вероятно нужно buff(true,&card);
grepfreecd grepfreecd: Не, там вроде поле просто так называется. На самом деле там просто точка. select ST_AsText(p.way), p.name from planet_osm_point as p where p.name is not null limit 10;
size_t. Базовый беззнаковый целочисленный тип языка Си/Си++. Является типом результата, возвращаемого оператором sizeof. Размер типа выбирается таким образом, чтобы в него можно было записать максимальный размер теоретически возможного массива любого типа. На 32-битной системе size_t будет занимать 32-бита, на 64-битной - 64-бита.
Я использую именно его для счетчиков цикла и в других случаях когда мне нужно беззнаковое целое.
"Знаю, что выкладывать большие куски кода - это свинство." Это не куча =) Больше задалбывает каждый раз просить выложить код в котором ошибка и сам текст ошибки. Так что у вас как раз нормальный вопрос.
Используйте отладочную печать. print signs в начале функции должно вас навести на мысль. Проблема действительно в том что у вас массив по ссылке передается. Нужно явно скопировать, например используя срез: is_100 = check_possibility(figures, signs[:], is_100).
Второе значение при использовании в выражениях: buff(true,*card); *card -- получить значение по указателю card (Но это же вроде не указатель!) Вероятно нужно buff(true,&card);