Skip to content

Instantly share code, notes, and snippets.

#include <cstdio>
#include <cstdlib>
#include <string>
#include <vector>
#include <cassert>
#include <array>
#include "dsu.h"
using std::string;
@lsem
lsem / AVL
Last active August 29, 2015 14:23
AVL Tree. Just for execrcise.
#include <cstdlib>
#include <cstdio>
#include <cassert>
#include <utility>
#include <algorithm>
struct AVLTreeNode
{
int height;
@lsem
lsem / shared_ptr-pass-by-value-price
Created June 28, 2015 12:42
shared_ptr vs raw passing to function benchmark. The aim is to find out how much does passing shared_ptr by value cost.
#include <memory>
#include <cassert>
#include <cstdio>
#include <chrono>
#include <algorithm>
#include <cstdlib>
#include <functional>
int increment_value;
@lsem
lsem / upper-lower-bounds
Created July 8, 2015 09:08
Upper and lower bounds of arrays
#include <cstdio>
template <class T>
int upper_bound(const T array[], T element, size_t left_index, size_t right_index)
{
int result = -1;
printf("upper: at start left_index: %lu\n", left_index);
printf("upper: at start right_index: %lu\n",right_index);
@lsem
lsem / Makefile.sample
Created October 13, 2015 20:41
Makefile sample
CC=g++
CFLAGS=-c -Wall
LDFLAGS=
SOURCES=main.cpp hello.cpp factorial.cpp
OBJECTS=$(SOURCES:.cpp=.o)
EXECUTABLE=hello
all: $(SOURCES) $(EXECUTABLE)
$(EXECUTABLE): $(OBJECTS)
@lsem
lsem / tsextension_example.ts
Created November 14, 2015 18:29
ESkills TypeScript extension example
import _ = require('underscore')
import assert = require('assert')
import util = require('util')
function denormalizersFactory(services: ExtensionTypes.IDenormalizerExtenionServices) : ExtensionTypes.IExtensionDenormalizers {
services.sayDenormalizingHello()
return {
onXXX: function (event: any) {
@lsem
lsem / crossplatform_widgets.cpp
Last active January 13, 2016 15:53
Cross Platform Widgets Toolkit -- Naive Approach
namespace ToolkitCode {
class IButton {
virtual void setTitle(const string &title) = 0;
virtual void doOnClick(std::function<void()> handler) = 0;
};
class Win32APIButton : public IButton {
virtual void setTitle(const string &title) = 0;
virtual void doOnClick(std::function<void()> handler) = 0;
@lsem
lsem / crossplatform_widgets__better.cpp
Created January 13, 2016 16:03
Cross Platform Widgets Toolkit -- Better Approach
namespace ToolkitCode {
class IButton {
virtual void setTitle(const string &title) = 0;
virtual void doOnClick(std::function<void()> handler) = 0;
};
class Win32APIButton : public IButton {
virtual void setTitle(const string &title) = 0;
virtual void doOnClick(std::function<void()> handler) = 0;
};
@lsem
lsem / server_handler__prototype_pattern.cpp
Last active January 14, 2016 10:40
Server Handler -- Prototype Pattern
class ICommandHandler {
public:
virtual void handle(const string &request) = 0;
virtual ICommandHandler* cone() = 0;
};
class CommandTypeAHandler : public ICommandHandler {
void handle(const string &request) override {
// ...
@lsem
lsem / cpplit_sublimetextplugin.py
Last active May 27, 2016 10:27
CppLit example SublimeText plugin.
import sublime, sublime_plugin
#print (str(sublime.__dict__))
#http://code.tutsplus.com/tutorials/how-to-create-a-sublime-text-2-plugin--net-22685
# Usage: in console: view.run_command('cpplit')
# Or, place this source as zip-packed cpplit.py in cpplit.sublime-plugin in C:/Users/lsem/AppData/Roming/Sublime Text 3/Installed Packages/
# and define key binding for command('cpplit')
class CpplitCommand(sublime_plugin.TextCommand):