- 1
- 2
- 3
- 4
- 5
- 6
- 7
module Voretion.Kobenation (
trySort
, natalyze
, toBase64
, fromBase64
, dbgKob
) where
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
module Voretion.Kobenation (
trySort
, natalyze
, toBase64
, fromBase64
, dbgKob
) where
https://github.com/k32/zenmaster
Чей петух, кто знает?
+2
Дали тестовое задание.
Написать хеш таблицу с открытой адресацией. Главное качество, а не скорость, сказали.
Реализовал на C++.
Самая тягомотина - это тестирование многопоточности.
Есть операции:
find, equalRange, operator [] - тот же equalRange, но возвращает все найденные вхождения, insert, remove, extend, size, capacity.
И вот надо каждую относительно другой проверять.
Только это выходит (9 - 1)^2 тестов. Помимо остальных, уже реализованных.
у меня проверка на значения только в операциях поиска относительно вставки, то бишь, нашелся ли в многопоточном исполнении элемент, или нет.
относительно удаления проверять - это муторно, потому что после удаления на той же позиции встает соседняя пара, и это случайно, проверено
экспериментально.
Сойдет ли просто проверять время блокировки (shared_lock, и lock_guard)
каждого параллельного текущему потоку относительно времени блокировки\старта\окончания блокировки текущего?
кроме связки (access - insert)?
Тем более, что операции записи\чтения проверяются в немногопоточном исполнении?
−1
#!/bin/sh
IFS=:
echo "Login\tUID"
while read LOGIN _ UID _;
do
echo "$LOGIN\t$UID"
done < /etc/passwd
давайте обсуждать шелл-программирование
0
#include "pch.h"
#include <iostream>
using namespace std;
struct _Point {
double x, y, z;
};
void setPoint(_Point &, double = 0, double = 0, double = 0);
void outPoint(const _Point &, char);
int main()
{
_Point A, B, C, D;
setPoint(A, 1, 5, 6.78);
setPoint(B);
setPoint(C, 8);
setPoint(D, 3, 4);
outPoint(A,'a');
outPoint(B,'b');
outPoint(C,'c');
outPoint(D,'d');
}
void setPoint(_Point &name, double a, double b, double c) {
name.x = a;
name.y = b;
name.z = c;
}
void outPoint(const _Point &name,char ch) {
cout <<ch<< "(" << name.x << ", " << name.y << ", " << name.z << ")\n";
}
0
Building on that example, the new syntax for function definitions would look like:
def name(positional_only_parameters, /, positional_or_keyword_parameters,
*, keyword_only_parameters):
Therefore the following would be valid function definitions:
def name(p1, p2, /, p_or_kw, *, kw):
def name(p1, p2=None, /, p_or_kw=None, *, kw):
def name(p1, p2=None, /, *, kw):
def name(p1, p2=None, /):
def name(p1, p2, /, p_or_kw):
https://www.python.org/dev/peps/pep-0570
+1
<?php
/*
=====================================================
DataLife Engine - by SoftNews Media Group
-----------------------------------------------------
http://dle-news.ru/
-----------------------------------------------------
Copyright (c) 2004-2019 SoftNews Media Group
=====================================================
This code is protected by copyright
=====================================================
File: mysql.php
-----------------------------------------------------
Use: MySQL class
=====================================================
*/
if( !defined( 'DATALIFEENGINE' ) ) {
header( "HTTP/1.1 403 Forbidden" );
header ( 'Location: ../../' );
die( "Hacking attempt!" );
}
class db
{
var $db_id = false;
var $query_num = 0;
var $query_list = array();
var $query_errors_list = array();
var $mysql_error = '';
var $mysql_version = '';
var $mysql_error_num = 0;
var $mysql_extend = "";
var $MySQL_time_taken = 0;
var $query_id = false;
...
2019 год, DLE за деньги
+1
// reflection.h
template <class T>
QStringList getPropertyList(T)
{
const QMetaObject& metaObject = T::staticMetaObject;
...
return properties;
}
// Copy-pasted, the parameter now is T*
template <class T>
QStringList getPropertyList(T*)
{
const QMetaObject& metaObject = T::staticMetaObject;
...
return properties;
}
// In other headers
class IMessage
{
public:
virtual ~IMessage();
...
};
class File
: public IMessage
{
...
};
class Text
: public IMessage
{
...
};
// Usage of all this
QStringList p;
p << getPropertyList(File());
p << getPropertyList(Text());
p << getPropertyList(static_cast<IMessage*>(new File()));
Работаю с шаблонами и теку
0
//замена главной диагонали с n-м столбцом в матрице с менюшкой и печеньками
#include "pch.h"
#include <iostream>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
#include <ctime>
#include <iomanip>
using namespace std;
int a[100][100], n = 3;
void inputN();
void filling(int);
void manualfill(int);
void showmass(int);
void solving();
void menu();
int main()
{
setlocale(0, "rus");
menu();
srand(time(NULL));
return 0;
}
void inputN() {
system("cls");
cout << "Введите n = "; cin >> n;
if (n < 3) {
cout << "\nИспользован стандартный размер массива 3х3\n\n";
n = 3;
}
showmass(2);
cout << "\n\n";
system("pause");
}
void filling(int n) {
system("cls");
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
a[i][j] = rand() % 100 + 1;
}
}
showmass(3);
}
void manualfill(int n) {
system("cls");
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
printf(" a[%d][%d] = ", i + 1, j + 1); cin >> a[i][j];
}
}
system("pause");
}
void showmass(int status) {
if (status == 2 or status == 3) cout << "\n\n";else system("cls");
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cout << setw(5) << a[i][j];
}
cout << endl;
}
if (status==1 or status == 3)system("pause");
}
void solving() {
system("cls");
showmass(2);
int c = 0;
int stolb = 0;
cout << "\nКакой столбец меняем?\n>>"; cin >> stolb;
stolb--;
for (int i = 0; i < n; i++) {
c = a[i][i];
a[i][i] = a[i][stolb];
a[i][stolb] = c;
}
printf("\n\n----гл. диагональ меняется с %d столбцом----\n\n",stolb+1);
showmass(3);
for (int i = 0; i < n; i++) {
c = a[i][i];
a[i][i] = a[i][stolb];
a[i][stolb] = c;
}
}
void menu() {
system("cls");
int ch = 0;
while (true) {
cout << " МЕНЮ\n\n";
ъуъ
+1
private static string GetServerHostFromUrl(string url)
{
char[] delimiterChars = { '/', ':' };
var urlParser = url.Split(delimiterChars);
if (urlParser[0] == "http" || urlParser[0] == "https")
return urlParser[3];
else
return string.Empty;
}
Когда ты умеешь решать все поставленные задачи
+1
Функция ДобавитьКДатеМесяц(НачальнаяДата, Количество)
РезультатФункции = Дата("00010101");
ЗапросПериода = Новый Запрос;
ЗапросПериода.УстановитьПараметр("ДатаНачала", НачальнаяДата);
ЗапросПериода.УстановитьПараметр("Количество", Количество);
ЗапросПериода.Текст =
"ВЫБРАТЬ
| ДОБАВИТЬКДАТЕ(&ДатаНачала, МЕСЯЦ, &Количество) КАК ДатаСмещения
|";
РезультатЗапросПериода = ЗапросПериода.Выполнить().Выбрать();
Если РезультатЗапросПериода.Следующий() Тогда
РезультатФункции = РезультатЗапросПериода.ДатаСмещения;
КонецЕсли;
Возврат РезультатФункции;
КонецФункции