タグ

ブックマーク / taichino.com (5)

  • C++で文字列のsplitにstringstreamが使える気がする – taichino.com

    久々にtopcoderをやってみたんですが、1問しか解けませんでした。終わった時は練習しようと思うんですが、中々実行できないです。。 久々すぎて文字列のsplitすら出来なくて、そんな馬鹿なと思って調べてみると、STLのstringってsplitメソッドが無いんですね。仕方ないのでその辺のコードをコピペしたんですが、終わってから皆さんのコードを見るとstringstreamでsplitするのが、常套手段っぽくて、初めて目にしたのでメモ書きです。 #include #include #include #include using namespace std; int main(int argc, char* argv) { stringstream ss("hello std world"); // これでスペースで文字列splitできる string elem; while (ss >>

    nilab
    nilab 2011/12/14
    半角空白文字でsplitならお手軽らしい。 / C++で文字列のsplitにstringstreamが使える気がする « taichino.com
  • 久々にC++使ったら進化してて素敵になってた件 – taichino.com

    最近、数年ぶりにC++を触っているのですが、いつの間にかかなり使いやすくなっていました。まだ全容は把握できてないのですが、とりあえず印象に残った以下の項目について書いてみたいと思います。 BOOST_FOREACHとautoですっきりループ tupleで無くなる無駄な構造体 #pragma onceで楽々インクルードガード std::functionとlamda関数でコンパクトなコード typeidでリフレクション 主にC++0x周りの話だと思っていますが、勘違いしている可能性も高いです。 前置きですが、エントリ内のコードはすべてgccの4.5.0で動作確認を行っています。(mac portのgcc45パッケージをインストールしました)。またビルド時にはc++0xの使用を明示する必要があります。 $ g++-mp-4.5 -std=c++0x main.cpp 1. BOOST_FORE

    nilab
    nilab 2011/11/30
    久々にC++使ったら進化してて素敵になってた件 « taichino.com
  • picojsonの使い方メモ – taichino.com

    JSONなデータをスクリプト言語から触るのは相当簡単ですが、C++とかでだとそれなりに大変です。なのでライブラリ使うのが良いかという話になります。最初はboostのPropertyTreeを使っていたのですが、DOMにしては中途半端だし、treewalkもできないし、コンパイル重いし、ソース読めないしでイライラは頂点に達していたのですが、picojsonが良いらしいと小耳に挟みまして試してみたら、大変使いやすかったのでメモ書きです。 実際に以下のJSONデータをpicojsonから触ってみます。 { "key1": [ "val1", "val2", "val3" ], "to_delete": "delete val" } 大まかな使い方は以下のような感じでしょうか。ツリーの内部ノードは、object型(map<string , picojson::value>)とarray型(vect

    nilab
    nilab 2011/11/30
    picojsonの使い方メモ « taichino.com
  • gitのリポジトリ作成メモ – taichino.com

    的にはgithubを使えば良いとは思うんですが、privateなリポジトリを作りたい時もあります。で、たまーにリポジトリ作るんですが、毎回方法をすっかり忘れてしまうのでメモ書きです。 大まかな手順は、以下の通りです。 リモートリポジトリを作成 ローカルリポジトリを作成 ローカルリポジトリをリモートリポジトリに紐付け 以下が作業ログですが、umaskの設定を忘れなければハマりどころは少ない気がします。 2012.10.16 修正 usermodの-aオプションが抜けていました。下記修正済みです。yamakatuさん、ありがとうございます。 # gitユーザとグループ作成 [admin@remote]$ adduser git [admin@remote]$ usermod -a -G git taichino # 自分 [admin@remote]$ usermod -a -G git

    nilab
    nilab 2011/09/13
    git --bare init 「リモートリポジトリを作る際に–bareオプションを指定すると、管理データのみ作られて編集用データは置かれません」「リモートリポジトリに編集データは不要なので普通は指定」gitのリポジトリ作成メモ
  • iPhoneでOpenCV(2.2以降)を使う – taichino.com

    以前も同じ内容を書いたのですが、OpenCVの開発は大変活発で最新版を使おうと思ったら色々つまずいたので再度エントリを書いておきます。前回はniwさんのエントリをなぞっただけだったので、今回は自力でライブラリのビルドをしました。手元の環境はSnowLeopard + iOS4.2 + OpenCVのリポジトリヘッド(2.2以降)です。 まずOpenCVは正式にiOSをサポートしていません。(androidはしてるんですが。)iOS環境では一部の機能を使えないため、使える部分を切り出してビルドするというのがiPhoneOpenCVを使うということです。使える部分を切り出してビルドをする為のスクリプトがniwさんの記事などで紹介されているのですが、構成が変わる度に他の人に頼るのはどうかという事で自力でビルドしてみようと思いました。 ライブラリの生成手順は以下になります。 CMakeを使ってX

    nilab
    nilab 2011/02/27
    iPhoneでOpenCV(2.2以降)を使う « taichino.com
  • 1