タグ

c++とprogrammingに関するMonMonMonのブックマーク (11)

  • 徐々に高度になるリングバッファの話 - Software Transactional Memo

    リングバッファのイメージ図 1. リングバッファとは何か 機能的にはFirst In First Out (FIFO)とも呼ばれるキューの一種であるが、リング状にバッファを置いてそれの中でReadとWriteのインデックスがグルグルと回る構造をとる事によって容量に上限ができることと引き換えに高速な読み書き速度を得たものである。キューを単に実装するだけなら山ほど方法があって線形リストを使ってもいいしスタックを2つ使っても原理的には可能だ。その中でもリングバッファを用いた方法の利点はひとえに性能の高さでありメモリ確保などを行わないお陰でシステム系の様々な場所で使われている。 これの実装自体は情報系の大学生の演習レベルの難度であるが少し奥が深い。まずリングバッファのスタンダードなインタフェースと実装は以下のようなものである。 class RingBuffer { public: explicit

    徐々に高度になるリングバッファの話 - Software Transactional Memo
  • Linear RPCをOSSとして公開させて頂きました:Tea Break:So-netブログ

    2015/09/02にLinear RPCをOSS (Open Source Software)として公開させて頂きました。 http://linear-rpc.github.io/ Linear RPCはデータフォーマットにMessagePackを使用したRPC (Remote Procedure Call)であるMessagePack RPCの一実装です。今回はC++によるクライアント/サーバーとJavaScriptによるクライアント実装などを公開させて頂きました。Linear RPCは、元々IPネットワーク経由で業務用機器を遠隔制御するためのプロトコルとして実装しましたが、RPCを利用したいすべてのアプリケーションやサービスで利用することが可能になっています。 なお、公開させて頂いた実装についてですが、C++11仕様ではありません。これは、Linux用のC++のコンパイラでC++11

    Linear RPCをOSSとして公開させて頂きました:Tea Break:So-netブログ
  • 1/30 発売!「プログラミングコンテスト攻略のためのアルゴリズムとデータ構造」 - iwiwiの日記

    書籍「プログラミングコンテスト攻略のためのアルゴリズムとデータ構造」が近日中に発売される予定です.会津大の渡部先生が著者で,Short Coding の Ozy さんと私が協力としての参加です.どうかよろしくお願いします. プログラミングコンテスト攻略のためのアルゴリズムとデータ構造 作者: 渡部有隆,Ozy(協力),秋葉拓哉(協力)出版社/メーカー: マイナビ発売日: 2015/01/30メディア: 単行(ソフトカバー)この商品を含むブログ (4件) を見る 書はアルゴリズムとデータ構造の入門書です.整列,探索,木構造などをはじめとする基礎的なアルゴリズムとデータ構造を初学者向けに説明します.前提とするのは基礎的なプログラミング能力のみです.コード例では C++ を用いています. これだけだと,よくあるのように思われるかもしれません.しかし,書は非常にユニークな特徴として,オン

    1/30 発売!「プログラミングコンテスト攻略のためのアルゴリズムとデータ構造」 - iwiwiの日記
  • コマンドラインからC系言語のコードフォーマットをかける方法 - Qiita

    フォーマッティングルールを決めてそれに従ってコーディングを行なうことは、コードの可読性を向上させるために特に複数人プロジェクトでは大切だと考えています。 一方で、フォーマッティングルールをそれぞれの開発者が覚えてそれに従ってコードを書くのも、他の開発者が書いたコードがフォーマッティングルールに従っているかを確認するのも、それなりにコストのかかる作業ですので、自動的にフォーマットを揃えてくれるコードフォーマッタを使うのが良いということになります。 コードフォーマッタを通すタイミングや方法については「コードを書く人が都度フォーマッタを通す」「ファイル保存時に自動的にフォーマットされるように設定する」「コミット時に自動的にフォーマットされるように設定する」「コマンドラインからコマンドを使ってフォーマットをかける」などいろいろ考えられ、フォーマットし忘れを防ぐには保存時やコミット時に自動的にフォー

    コマンドラインからC系言語のコードフォーマットをかける方法 - Qiita
  • google-glogに潜むトリックを解明する - 射撃しつつ前転 改

    google-glogは非常に有名なロギングライブラリであり、その名前からわかる通りgoogleの人々によって開発されている。使い方は簡単で、 LOG(INFO) << "this is not a drill"; みたいな感じで、LOG()が返すオブジェクトoperator<<で記録したいオブジェクトをつなげていくだけで使える。とても便利である。実は、この便利さの裏には、実はいくつかのトリックが隠れている。適当に見た目を真似して作るだけでは、glogと同じような便利さは実現できないのである。今日は、その便利さを実現しているトリックを紹介したい。 なぜLOG()はマクロなのか まず、このLOG(INFO)というのは一見、関数もしくはクラスのコンストラクタかなにかに見える。しかしその実体は実はマクロで、以下のように展開される。 LogMessage(INFO).stream() LOGという

    google-glogに潜むトリックを解明する - 射撃しつつ前転 改
  • TechCrunch | Startup and Technology News

    After Apple loosened its App Store guidelines to permit game emulators, the retro game emulator Delta — an app 10 years in the making — hit the top of the…

    TechCrunch | Startup and Technology News
  • Log in with Atlassian account

    We tried to load scripts but something went wrong. Please make sure that your network settings allow you to download scripts from the following domain: https://id-frontend.prod-east.frontend.public.atl-paas.net

  • 今すぐ使える C++ コーディングテクニック集 - torus711 のアレ

    前置き これは、Competitive Programming Advent Calendar Div2013, 第 5 日の記事です。 記事の内容はタイトルの通り、アルゴリズムではなくコーディング自体に関するテクニック集です。(おそらく)競技プログラミング界隈ではこういった知識についてのまとまった資料が少なく、他の参加者のコードを見て盗まなければならないというのが現状だと思います。当ブログでも、テクニカルな書き方をしたコードを特に説明せずに掲載しているので、わたしがよく使っているものをまとめてみようと思いました。 この記事の内容を実践することで、例えば次のような効果があります。(個人の感想です) コード量が減少し、すっきりまとまったコードになってうれしい コードの意味が分かりやすくなり、デバッグしやすくなってうれしい Challenge / Hack の際に変なコードでも読めるようになっ

    今すぐ使える C++ コーディングテクニック集 - torus711 のアレ
  • C++11: Syntax and Feature

    C++11の文法と機能(C++11: Syntax and Feature) Copyright (C) 2013 江添亮. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GN

  • waf チュートリアル - 純粋関数型雑記帳

    waf - The flexible build system http://code.google.com/p/waf/ wafというものを最近知り一目惚れしてしまったので、紹介記事を書きます。ユーザーが増えると嬉しいな。 wafとは何か?特徴・利点・使うべき理由 wafはPythonベースのビルドシステムです。同様のことを行うツールとして、Autotools、Scons、CMake、Antなどがあります。Sconsからの派生で、比較的新しいソフトウェアです。 分かりやすい Pythonで書かれており、スクリプトもPythonで記述します。シェルスクリプトと謎のマクロが入り混じるAutotoolsや、独自言語のCMakeなどに比べて扱い易いです。Pythonを知っていれば非常にすんなりと使いこなすことが出来ます。Pythonを知らなくても、他の独自言語を覚えるよりは実りがあるかと思います

    waf チュートリアル - 純粋関数型雑記帳
  • C++ Advent Calendar 2012 「18日 : Cer に知って欲しい C++」 - krustf の雑記

    この記事は, C++ Advent Calendar 2012 (C++ Advent Calendar 2012 - PARTAKE) の18日目です. 温いネタをやりたいので C 言語を使っている人 (Cer) に C++ の知って欲しい/今すぐ使える機能を Tips 的に書いていこうと思います. 対象は特に設けなくていい気がしますが, 例えば数値計算クラスタとか. 普段 malloc とか for とかぶんぶんしてるような気がするので言い例かも. よく分からないところがあったらこの記事か Twitter の @krustf にでも質問してください. 後, 詳しい説明はしないほうが良いと思います. "C++ ってこんな風にかけるのか!" ぐらいの感想を持って頂いて, 使ってみようとする人が増えてくれればと思います. その点では途中よく分からない語が出てくるかもしれませんが「へー」ぐらい

    C++ Advent Calendar 2012 「18日 : Cer に知って欲しい C++」 - krustf の雑記
  • 1