Gobble up pudding

プログラミングの記事がメインのブログです。

MENU

Programming

Javaで優先順位をつけて複数のキーでソートする方法

久々にPureなJavaを書きました(*´Д`) 複数のキーでソートする書き方の説明 いろいろ書き方はありますが、 対象のクラスにComparableをimplementsして compareTo()をオーバーライドすると ソート順を定義できます。 そのうえで、 -1(左が先) 0(同じ) 1(…

C++のmapとJavaのmapの挙動が違う件

C++でmapを書いててinsertしまくってましたが、 あれれ?Javaと挙動が違うということに気付きました。 mapでinsertするとC++ではキーが重複したときに、 insertされず、valueが上書きされない。 一方、Javaのほうはputしたときに 最後にputしたものでvalueが…

わかりにくい関数ポインタを返す関数

関数ポインタって変な文法ですよねってお話です。 もちろんポインタの文法もいろいろツッコミどころはあるのですが (このせいでポインタよくわからんな人が続出)。 例えば次の宣言はぱっと見すぐにわかる人はC言語マスターです。 void (*func(const char *…

C言語の不可解なエラー(GCC) - 配列の宣言時にconst変数を指定したとき

stackoverflowで英語の練習を兼ねてダメダメ英語を連投してました。 そのうち迫害されるんじゃないかと思います(*´Д`) そんなわけで、Cのプログラムを書いていたのですが…… 不可解なエラーが…… 問題になったコード #include <stdio.h> #include <string.h> const int MAXLINE =</string.h></stdio.h>…

Visual C++でデバッグ時の出力をIDE(Visual Studio)上に出す方法

Visual Studioの出力ウィンドウまたはイミディエイトウィンドウに なにか文字列を出力したい時は コンソールアプリケーション、Windowsアプリケーションに 関わらず、OutputDebugString()を使うとそれが実現できます。 使い方はputs()と同様です。改行はつけ…

Rubyプログラミング練習 〜tcl/tk編〜

とりあえず、見よう見まねで書いてみました。 言語仕様はなんとなく抑えました。だけど、Rubyらしい書き方や どう書くべきかというのはわかっていません。 returnも書くべきか書かないべきかよくわからないのですが、 Ruby 1.9以降はreturn書いても遅くなら…

AOJ(Aizu Online Judge)やってみた

競技プログラミングでAOJやってみました。 最初よくわからんかったのですが、 ここも自動で提出したコードを即時にチェックしてくれる いいところです! なぜか人間がチェックするものだとずっと勘違いしていました(笑) 他の人の回答も手軽に見れるところも…

競技プログラミング メモ

まだまだ競技プログラミングは初心者です(´・ω・`)。 とりあえずテンプレがあったほうがいいのでテンプレをメモります。 すごいのになるとマクロの嵐ですよね…あれはすごい。 とりあえずテンプレ using namespace std; namespace patch { const int Failed =…

近代汎用術式Boost C++ 1.57.0をVisual Studio 2013で使う ~導入と使い方~

まだ多重継承でダイヤモンドの錬成をしていない僕ですが、 ついに近代汎用術式に手を出すことにしました。 現時点で最新版のBoost C++ 1.57.0をVisual Studio 2013で使うためのメモです。 汎用術式でありながら暗黒術式ではあるのですが、導入と使うのは割と…

printf系の書式文字列のエスケープでハマったけど解決した

printf系の書式(フォーマット)文字列でエスケープしなきゃなんないのはどれかわかってなくてハマりました。 正解のコード char buffer[80]; char format[20]; // 20もあれば用は足りるので…… printf("なんかいれてね : "); //sprintf(format, "%%%d[^\\n]%%*…

DXライブラリとC++でRPGのサンプルを作りました

DXライブラリとC++によるソースコードを公開しています。 ソースコード ソースの中身の詳細については Github上のReadMe.mdを参照してください。タイトルに一部ちょっと嘘があります。作ったという部分です。 自分で全部作ったのではなく、下記に掲載してい…

クラス内のオブジェクト(クラス・構造体)を関数で返したもののpublicメンバに対して代入を行う

なんともややこしい表現ですがこういうことです。 もう一度タイトルですが、 クラス内のオブジェクト(クラス・構造体)を関数で 返したもののpublicメンバに対して代入を行う な… 何を言ってるのか わからねーと思うが おれも何を言っているのかわからなかっ…

std::function, std::bindは便利

C++でstd::function, std::bindを使ってみました。あんまりJavaScriptは詳しくないですが、 例えばJavaScriptではこんなことができます。 <html> <head> <script type="text/javascript"> </head></html>

ぷよぷよの問題(人材募集企画 2011年版 問題2)をC++解いてみました。

だいぶ前の問題なのですが、たまたま記事を見かけたので 書いてみました。 簡単に問題を説明すると、 あるぷよぷよの入力が与えられていてそれが19連鎖するそうです。 その連鎖の様子を出力しなさいという問題です。2時間以上かかると採用は難しいでしょうと…

PythonでNumpyとMatplotlibを利用する(Windows)

追記 (2018年7月3日) この記事はすさまじく古いです。 現在Windows環境でならAnaconda(+Jupyter notebook)を使うかPythonの標準パッケージマネージャーのpipを使うほうが賢明です。PytnonでnumpyとmatplotlibをWindows上で使う場合のメモです。 いや、全部書…

割り算を考えてみる

アセンブラの勉強をしていて、CPUの話に興味をもって突っ込んだら、 割り算って苦労してるのね…ってことがわかりました。 なんかで聞いた話ではゲームボーイとかは割り算が使えなかったとか。 割り算にもいろいろな方式があって、いまSRT法っていうのが主流…

C++ オペレーターオーバーロード(演算子の多重定義) まとめ

C++で演算子の多重定義は使用頻度がそんなに多くはないものですが、 いざ書く時、あれれ、戻り値は参照にしていいの?とか 引数はconstつけるべきなの?参照渡しでいいの?とか いろいろ悩んでしまってもうこの際丸暗記してしまおう! っていうような作戦に…

Direct2D + WIC + Windows APIでアナログ時計

Direct2D + WIC + Windows APIでアナログ時計を作りました。 MSDNのサンプルとチュートリアルを見ながら、サンプルを改変してコードを書きました。 以前作成したアナログ時計 今回作成したアナログ時計(ポップアップウィンドウ使用) ずいぶんゴージャスにな…

C++でstd::stringをどう返すべきか Part3

もはやタイトルから脱線しかかってきました。 C++11がらみのお話です。ただしRVO/NRVOはC++03でも使える…というか コンパイラ依存です。 とはいってもよほどマイナーかとても古いものを使っていなければ サポートされているというところでしょうか。 少なく…

JavaのWebアプリでのマルチスレッドについて

最初にお断りしますが、Struts 1.x系限定のお話です。 JavaでWebアプリでマルチスレッドやらスレッドセーフなどという言葉を初めて聞いたとき、 やべぇ、JavaのWebアプリって難しそう。 スレッドセーフを常に意識してコーディングして 必要なところはクリテ…

C++でstd::stringをどう返すべきか Part2

Part1はこれ ものすごくありがたい情報をいただきました。 RVOについて(NRVOというのもある) これを無効化するオプションがありますよとのこと。 id:yohhoyさんのアドバイスが gccであれば-fno-elide-constructorsオプションを指定すると、 RVOが無効化さ…

C++でstd::stringをどう返すべきか Part1

C++では関数からstd::stringを皆はどうやって返してんだろうっていう疑問がわきました。 フツーに考えてstd::stringをそのまま値で返す一択なのですが、 そこで問題になるのがコピーコスト…… っていうかそもそもコピーしてるの?とかいろいろ疑問が沸くわけ…

C#ではてなブログAtomPubを使って記事一覧を取得してみた

前回の投稿に続いて今度はプログラムからはてなブログの一覧取得です。 今度はちょっと手を加えればできるので記事一覧を取得してみました。 なお、私はC#のAPIをあまり知らないのでGoogle大先生に聞いて コピペつぎはぎプログラミングになっています。 C#は…

C#ではてなブログAtomPubを使って記事を投稿してみた

プログラムからはてなブログの投稿をやってみました。言語は思い付きでC#を選びました。 昨日なかば寝ながら書いていておかしなところがたくさんあったので修正しました。 C#のLINQ to XMLなるもの、嘘でした。単なる普通のDOMでした…を使って はてなブログA…

C++らしい入出力、数値・文字列相互変換まとめ

まとめるつもりはなかったのですが、 たまたま目にとまったメールで問題が書いてあって おお、なんかサンプルを書くには良さそうと思い、 CodeZineのメールマガジンに書いてあったサンプルを利用させていただきます。 よくあるTopCoderのようなあのレベルの…

CSVでダブルクォートで囲まれた場合のパース方法(C言語)

CSVでダブルクォートで囲まれた場合のパースって なんかうまい書き方あるんだろうかと、 一応自分でも考えながら調べてみると、 あるんですね。なかなかきれいな書き方が。 まぁ、こんなのは普通のプログラミング言語使っている場合は ライブラリ頼りで自分…

双方向リストの実装

やっぱりアルゴリズムとデータ構造の知識って重要だよねってことで プログラミングの基礎を勉強しなおしてます。 C言語で単方向リストの実装 - Gobble up pudding この続きです。 この実装もArrayDequeやLinkedListが備えているメソッドを実装しきれてません…

Visual Studio (VC++)でフィルタ?(フォルダ?)が消えた!!時の対処法

実をいうと、何も消えていなくて、単に表示のされ方の問題です。『ゲームプログラマになる前に覚えておきたい技術』という本付属のソースコードをVisual Studio 2013用に再コンパイルして、ソースを眺めていたら、あれれ?フォルダ構成と同じようにソースが…

スタック上に確保するクラスのインスタンス化のやり方について

スタック上に確保するクラスのインスタンス化の場合()丸カッコ有の場合エラーになるのはなんでなの?という話。 C++でRAII(Resource Acquisition Is Initialization)とかしようとしたときに スタック上にクラスをインスタンス化することがあって { HogeClass…

string型にファイルを一気読みできるstreambuf_iteratorのおおまかな仕組み

以前の記事の C++でファイル読込み パターン別まとめ - Gobble up pudding で最後に書いた例のstreambuf_iteratorの仕組みですが、 おおまかにどうなっているのかわかりました! C++標準ライブラリのiteratorを継承して、 内部でファイルポインタを扱ってい…