- 1
- 2
- 3
- 4
- 5
- 6
LRESULT WINAPI DefWindowProc(
_In_ HWND hWnd,
_In_ UINT Msg,
_In_ WPARAM wParam,
_In_ LPARAM lParam
);
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
LRESULT WINAPI DefWindowProc(
_In_ HWND hWnd,
_In_ UINT Msg,
_In_ WPARAM wParam,
_In_ LPARAM lParam
);
+1
bool almostIncreasingSequence(std::vector<int> sq) {
bool b2 = true;
int s = sq.size();
if (s > 2) { // Последовательность меньше трех чисел дает истину.
int i = 1; // Проверка начинается со второго элемента.
int x = -1; // Для записи индекса элемента <= предыдущего, а еще "флаг".
while ((b2) && (i < s)) { // При нахождении 2-го лишнего происходит выход из цикла.
if (x != -1) { // Проверка "флага".
if (sq[i] <= sq[i - 1]){ // Сравнение с предыдущим элементом.
b2 = false; // Если условие истинно, то это уже второй элемент,
} // "конфликтующий" с предыдущим, следовательно, выход и "ложь".
if ((sq[i] <= sq[x - 1]) && (x != 1) && (sq[i - 1] <= sq[x - 2])) { // над этим условием я думал слишком долго
b2 = false; // Если элемент был "убран", индекс конфликтного
} // элемента записан в "x".
}
else { // Если условие ложно, то записываем индекс элемента, который
if (sq[i] <= sq[i - 1]) { // "конфликтует" с предыдущим.
x = i; // Нам не известно лишний он или нет.
}
}
i++;
}
}
return b2;
}
проверяет, можно ли убрать только один элемент из последовательности, чтобы она стала постоянно возрастающей.
+3
#define __DEBUG
#ifdef __DEBUG
#define print_pair(p) do{std::cout << "(" << ((p).first + 1) << ", "\
<< ((p).second + 1) << ")" << std::endl;}while(0);
#endif
Graph::result
Graph::dijkstra (int start)
{
#ifdef __DEBUG
std::cout << "Dijkstra algorithm tracing:" << std::endl;
#endif
distances[start] = 0;
std::set<std::pair<int, int>> q;
q.insert (std::make_pair(distances[start], start));
while (!q.empty())
{
#ifdef __DEBUG
std::cout << "top element of a set: ";
print_pair(*q.begin());
#endif
int current = q.begin()->second;
q.erase(q.begin());
for (int i = 0; i < adj[current].size(); ++i)
{
#ifdef __DEBUG
std::cout << "current vertex: " << (current + 1);
std::cout << " ad current state of distances array is: " << std::endl;
for (auto i: distances)
std::cout << i << " ";
std::cout << std::endl;
#endif
int to = adj[current][i].second;
int length = adj[current][i].first;
// Relaxations
if (distances[to] > distances[current] + length)
{
#ifdef __DEBUG
std::cout << "relaxation for edge (" << current << ", " << to << ") ";
std::cout << "with weight " << length << std::endl;
#endif
q.erase(std::make_pair(distances[to], to));
distances[to] = distances[current] + length;
path[to] = current;
q.insert(std::make_pair(distances[to], to));
}
}
}
// Replace INF by -1
std::replace (distances.begin(), distances.end(), INF, -1);
return distances;
}
Я у мамы решил подебажить как мыщъх дебажил при помощи отладочной печати. Вот что получилось.
+3
std::string sql = "INSERT INTO digest_test_record (set_id, ref_digest, cand_digest, vdt_cfg_warn, digest_cfg_warn, "
"ref_duration, ref_cardinality, ref_dispersion, "
"cand_duration, cand_cardinality, cand_dispersion, "
"cardinality, difference, red_difference, ext_difference, "
"inv_cardinality, inv_difference, inv_red_difference, inv_ext_difference,
"timing, lib_version) SELECT 0, "
"ROW($1, $2, $3, $4, $5, $6, $7, $8)::digest_info, "
"ROW($9, $10, $11, $12, $13, $14, $15, $16)::digest_info,"
"$17, $18, ",
"$19, $20, $21, "
"$22, $23, $24, "
"$25, $26, $27, $28, "
"$29, $30, $31, $32, "
"$33, ROW($34, $35, $36, make_date($37, $38, $39), $40)::lib_version_info";
cn.prepare("insert", sql);
xact.prepared("insert")
(ref_digest_info.src_width)(ref_digest_info.src_height)(ref_digest_info.src_fps)(ref_digest_info.src_duration)
(ref_digest_info.vdt_duration)(ref_digest_info.cardinality)(ref_digest_info.has_flags)(ref_digest_info.src_filename)
(cand_digest_info.src_width)(cand_digest_info.src_height)(cand_digest_info.src_fps)(cand_digest_info.src_duration)
(cand_digest_info.vdt_duration)(cand_digest_info.cardinality)(cand_digest_info.has_flags)(cand_digest_info.src_filename)
(results.vdt_cfg_warn)(results.digest_cfg_warn)
(results.ref_duration)(results.ref_cardinality)(results.ref_dispersion)
(results.cand_duration)(results.cand_cardinality)(results.cand_dispersion)
(results.cardinality)(results.difference)(results.red_difference)(results.ext_difference)
(results.inv_cardinality)(results.inv_difference)(results.inv_red_difference)(results.inv_ext_difference)
((double)timing / CLOCKS_PER_SEC)(li.main_ver)(li.sub_ver)(li.revision)(li.year)(li.month)(li.day)(li.platform).exec();
Мои глаза.... Яркий пример использования нативного pqxx
+3
const int size = 100000;
const int maxVal = 1e9;
for(int i = 0; i < n; i++)
values[i] = rand() % (maxVal + 1);
Код работает на вин32
+1
<?php $this->widget('bootstrap.widgets.TbButton', array(
'label' => 'Экспорт в Excel',
'type' => 'primary',
'url' => $this->createUrl('export'),
'htmlOptions' => array(
'target' => '_blank',
'onclick' => 'jQuery(this).attr(\'href\', jQuery(this).attr(\'href\').replace(/(\?.*)?$/, \'?\' + jQuery(this).closest(\'form\').serialize()))',
//'style' => 'float:right;',
),
)); ?>
Часто пытаюсь убедить людей, что Yii говно, но мои аргументы вечно парируют.
Как может здоровому человеку прийти в голову идея изобрести столь долбоёбский инструмент?
И ведь весь сраный Yii пропитан подобными высерами.
+2
function coolSplit(str, pattern) {
var result = [];
while(1){
var m = str.match(pattern);
if(!m) {
if(str) result.push(str);
return result;
}
if(m.index) result.push(str.substr(0, m.index));
result.push(str.substr(m.index, m[0].length));
str = str.substr(m.index + m[0].length);
}
}
Из шифроскрипта. https://github.com/1024--/govnokod.ru-userscripts/commit/898e6195b9799853b08a01834ce55f8d780757f3#diff-40cd32e1559d395399816968845cb034R151
coolSplit(str, /expr/) ≡ str.split(/(expr)/) // Говнокод обучающий
−137
begin
# Это пиздец
artist_title = row.title.split(/ - /)
if artist_title.length > 1
row.artist = artist_title[0]
row.title = artist_title[1]
else
artist_title = row.title.split(/ — /)
if artist_title.length > 1
row.artist = artist_title[0]
row.title = artist_title[1]
else
artist_title = row.title.split(/ - /)
if artist_title.length > 1
row.artist = artist_title[0]
row.title = artist_title[1]
else
artist_title = row.title.split(/ – /)
if artist_title.length > 1
row.artist = artist_title[0]
row.title = artist_title[1]
else
artist = row.title.match(/\((.*?)\)/)
artist = artist.captures[0]
# puts artist_title
# puts row.title
# puts artist
row.artist = artist
row.title = row.title.gsub('('+artist+')', '').strip
end
end
end
end
rescue
next
end
+2
rates = rates.Join(filter, _=> filterItem.ToString(_), _ => _.ToString(), (_, _2) => _).ToList();
Не надо так.
+91
private static int NumberOfLeadingSpaces(string str)
{
str = str.TrimEnd();
return str.Length - str.Trim().Length;
}
Из моего проекта. Так я писал код 1.5 год назад.
Вместо того, чтобы пройтись циклом с начала строки, пока не встретиться символ, не являющийся пробелом.