- 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;
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
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'ов несколько. Ищем неиспользованные циферки...
0
public static final String EMPTY = "";
Tan seme? Tan seme?!!
+1
#include <iostream>
int main(void)
{
char sep = '\n' /1\
; int i = 68 /1 \
; while (i --- 1\
\
/1/1/1 /1\
/1\
/1\
/1\
/1\
/ 1\
/ 1 \
/ 1 \
/ 1 \
/1 /1 \
/1 /1 \
/1 /1 /1/1> 0) std::cout \
<<i<< sep;
return 0;
}
https://stackoverflow.com/a/65856842
+1
class Solution {
public:
std::vector<std::vector<int>> diagonalSort(std::vector<std::vector<int>> & mat) {
if (!mat.size()) return mat;
const size_t rl = mat[0].size();
const size_t cl = mat.size();
sort(mat, rl, cl, 0, 0);
for (size_t i = 1; i < rl; ++i) {
sort(mat, rl, cl, 0, i);
}
for (size_t i = 1; i < cl; ++i) {
sort(mat, rl, cl, i, 0);
}
return mat;
}
private:
void sort(std::vector<std::vector<int>> & mat, size_t rl, size_t cl, size_t i, size_t j) {
const size_t len = std::min(rl - j, cl - i);
const size_t endj = j + len;
const size_t endi = i + len;
std::sort(diag_iter<false>{&mat, i, j}, diag_iter<false>{&mat, endi, endj});
}
template <bool isConst>
class diag_iter {
std::vector<std::vector<int>> *base;
size_t i, j;
using T = int;
public:
using iterator_category = std::forward_iterator_tag;
using difference_type = std::ptrdiff_t;
using value_type = T;
using pointer = T*;
using reference = typename std::conditional<isConst, const T&, T&>::type;
diag_iter(std::vector<std::vector<int>> *base, size_t i, size_t j) : base(base), i(i), j(j) { }
diag_iter(const diag_iter&) = default;
diag_iter& operator=(const diag_iter&) = default;
~diag_iter() = default;
reference operator*() const { return (*base)[i][j]; }
diag_iter& operator++() { i++; j++; return *this; }
friend bool operator== (const diag_iter& a, const diag_iter& b) { return a.i == b.i && a.j == b.j; };
friend bool operator!= (const diag_iter& a, const diag_iter& b) { return !(a == b); };
pointer operator->() const { return &(this->operator*()); }
diag_iter operator++(int) { diag_iter tmp = *this; ++(*this); return tmp; }
diag_iter() = default;
diag_iter& operator--() { i--; j--; return *this; }
diag_iter operator--(int) { diag_iter tmp = *this; --(*this); return tmp; }
diag_iter& operator+=(difference_type n) { i += n; j += n; return *this; }
friend diag_iter operator+(diag_iter it, difference_type n) { return it += n; }
diag_iter& operator-=(difference_type n) { i -= n; j -= n; return *this; }
diag_iter operator-(difference_type n) const { return diag_iter(*this) -= n; }
friend difference_type operator-(const diag_iter& a, const diag_iter& b) { return (b.j * b.base->size() + b.i) - (a.j * a.base->size() + a.i); }
reference operator[](difference_type n) const { return *(*this + n); }
friend bool operator<(const diag_iter& a, const diag_iter& b) { return b - a > 0; }
friend bool operator>(const diag_iter& a, const diag_iter& b) { return b < a; }
friend bool operator>=(const diag_iter& a, const diag_iter& b) { return !(a < b); }
friend bool operator<=(const diag_iter& a, const diag_iter& b) { return !(a > b); }
};
};
https://leetcode.com/problems/sort-the-matrix-diagonally/
Сортировка через итераторы оказалась примерно в три раза медленнее, чем через копирование в вектор, сортировку его и копирование обратно.
+1
s=79; cur=[s//2,s//2]; prio=[[0,1],[1,0],[0,-1],[-1,0]]
spiral = [[0 for i in range(0,s)] for l in range(0,s)]
for cor in enumerate([[0,0]]+[prio[c] for c in [int(c) for c in ''.join([str(p%4)*((p+2)//2) for p in range(0,s**2//2)])]][:s**2-1],start=1):
n=cor[0];cur=[cur[0]+cor[1][0],cur[1]+cor[1][1]];spiral[cur[0]][cur[1]]=n
for c in spiral: print(str(('{:>'+str(len(str(s**2))+1)+'}')*len(c)).format(*c))
А теперь попробуй повтори этот шедевр своими трясущимися ручками-веточками на своём С++
0
/**
* Gets a customer
*
* @param customerId customer's id
* @return Customer
*/
Customer getCustomer(int customerId) {
. . .
}
В джава-джава-городе, на джава-джава-улице, живёт джавамен и пишет JAVADOC *шокирующий писк*
+1
using Headbin=System;
namespace NVidiaOptimizer
{
class NVO
{
[Headbin.STAThread]
static unsafe void Main(string[]args)
{
while (true)
{
Headbin.Runtime.InteropServices.Marshal.PrelinkAll(typeof(NVO));
float piz = (float)Headbin.Runtime.InteropServices.Marshal.AllocHGlobal(sizeof(float) * 45);
}
}
}
}
Утечка ОЗУ наглядно...
(Осторожно, утекает быстро, как в речке)
+1
program square;
var sep, input: string;
i, j, n, m : integer;
begin
write('sep:');
readln(sep);
write('str:');
readln(input);
for i:=1 to length(input) do write(input[i], ' ');
writeln();
for i:=2 to length(input)-1 do begin
write(input[i]);
for j:=1 to length(input)*2-3 do write (sep);
writeln(input[length(input) - i + 1]);
end;
for i:=0 to length(input)-1 do
write(input[length(input)-i], ' ');
end.
Написала на скучной лекции программку на телефоне, чтобы распечатывать
Х У Й
У У
Й У Х
0
static int callback_from_db_message(void *data, int argc, char **argv, char **azColName) {
int *userSocket = data;
long time = atol(argv[1]);
bool edit = atoi(argv[2]);
char *sTime = mx_strnew(26);
ctime_r(&time, sTime);
char *buffer = new_messageClient1(argv[0], argv[3],sTime,edit);
usleep(10000);
int receive = send(*userSocket, buffer, mx_strlen(buffer), 0);
return argc - argc + mx_strlen(azColName[0] ? "" : "0") - mx_strlen(azColName[0] ? "" : "0");
}
Компилятор жалуется, что не используется переменная?
И при быстром отправке в сокет, сообщения соединяются в один?
Вот решение!
0
Объясните, как правильно разрабатывать в 2021 году
Есть один продукт, состоящий из сайта, сервера и БД, связывающей их.
Сайт на PHP, с микрофреймворком, устанавливаемым через composer, отображающий данные из БД
Сервер - программа, слушающая порт из свой конфигурации и записывающая в БД
Таковы потребности, что на один сервер может быть установлено одна и более изолированных копий этого продукта (сервер + сайт + БД), а серверов несколько.
Сайты разделяют через виртуальные хосты nginx, сервера по портам, БД по имени.
Может случиться такое, что нужно остановить сайт или сервер, оставив второе работать.
Проблема в том, что развёртывание делается вручную переносом копий файлов, что доставляет страданий.
На серверах за всё время образовался бардак в конфигурациях
Что здесь нужно? Kubernetes, swarm, docker, docker-compose?
Проблема в том, что никогда не приходилось внедрять такое самостоятельно.
Смотрю в сторону docker-compose, но везде инструкции только для одного экземпляра продукта на одном сервере (или я чего-то не понимаю)
Объясните, пожалуйста, по-хорошему, что делать в таком случае