タグ

C++に関するpn11のブックマーク (15)

  • オブジェクト指向できていますか?

    3. 自己紹介 1992年~1997年 某ゲーム会社 プログラマ SFC,GB,PS1,N64のゲーム開発経験 1998年~現在 日工学院八王子専門学校 @mozmoz1972 専任講師 プログラミング教育を中心に担当 twitterもfacebookも実名です。よかったらフォローしてください。

    オブジェクト指向できていますか?
    pn11
    pn11 2015/06/27
    勉強になった。
  • char*型を関数に渡して文字列を代入する - すたんだーどっ☆あいおーっ!

    char*型を普通に渡しても配列を渡すように受け渡し元のデータは変わらない。 //関数側で配列内のデータを書き換える void func1(int num[]){ num[0] = 7; } //関数側で文字列を書き換えたい? void func2(char* c){ c = "new name"; } int main(void){ int num[1]; func1(num); printf("%d",num[0]); char* str = "hello world" void func2(str); printf("%s",str); return 0; } //実行結果 //7 //hello world 実行結果をみると、strは中身が書き変わっていない。 void func2(str); この時点では str == c だが、 c = "new name"; char*型の変

    char*型を関数に渡して文字列を代入する - すたんだーどっ☆あいおーっ!
    pn11
    pn11 2015/06/04
  • 誰もが一度は陥る日付処理。各種プログラミング言語におけるDateTime型/TimeStamp型の変換方法のまとめ - Y's note

    日付型の変換処理 Date/Timestamp変換のまとめ - Yuta.Kikuchiの日記 10言語のプログラミング言語に対してそこそこの知識を保有している@yutakikucです。いろんなプログラミング言語を使用していると文法を覚えるのは大変ですよね。PHP書いている途中からJavaScriptの文法を誤って書き始めたり... それぞれの言語の文法の違いを事細かく覚える事は無理に近いです。今日はそんな各種言語仕様の記述で難解なDateTime/TimeStampについて紹介したいと思います。扱うのはWeb系のメジャープログラミング言語のSQL/C++/Java/JavaScript/Perl/PHP/Python/Rubyになります。Mysqlからデータを取り出した後や、WebAPIから取得したデータを表示用の日付フォーマットに変換する事があると思うのでそこで利用できる知識になるかと

    誰もが一度は陥る日付処理。各種プログラミング言語におけるDateTime型/TimeStamp型の変換方法のまとめ - Y's note
    pn11
    pn11 2015/06/04
  • 6 Free E-Books on C and C++

    pn11
    pn11 2015/05/04
  • テトリスもどき

    概要 知らない人はめったにいないほと有名なゲーム「テトリス」の基部分をコンソールアプリにしてみた。 テトリスは、元々はソビエト連邦の科学者アレクセイ・パジトノフ等が1984年に開発・公開したものだ。 筆者は1986年頃、会社のマックでプレイし、ハイスコアの1位~10位までを独占するまで延々やり続けていた。 周りの顰蹙をかってたような気もするが、今となってはいい思い出だ。;^p 稿ではその「テトリス」の基的な部分をコンソールアプリとして実装したコードを解説する。 落ち物系ゲーム実装の基テクニックを学んで欲しい。 なお、「テトリス」は登録商標なので、テトリスを冠したゲームをおおっぴらに配布することは法律的に禁止されている。 稿は学習目的なので問題は無いと考えているが、稿のソースを改変し格的なゲームにしたものを「テトリス」という名称を付けて有償・無償で配布すると、 権利者から警告を

    テトリスもどき
    pn11
    pn11 2015/05/04
  • readline の使い方 in C++: uyota 匠の一手

    C++ 言語での readline の使い方。 // c++ rl.cpp -lreadline -lcurses #include <stdio.h> #include <readline/readline.h> #include <readline/history.h> #include <string> #include <iostream> int main() { using namespace std; char *ptr; string line; using_history(); read_history(NULL); while(ptr = readline("rl++:")) { add_history(ptr); line = ptr; cout << line << endl; free(ptr); } write_history(NULL); } ほぼ C 言語で

    pn11
    pn11 2015/03/30
    なるほろ
  • C++ Compiling error: Undefined symbols for architecture x86_64

    pn11
    pn11 2015/03/14
    “I believe you need to initialize nCounters with a value.” staticメンバーを使ったらコンパイルできなかったのはイニシャライズしてないからだった。
  • C++11のすすめ

    この記事は Competitive Programming Advent Calendar Div2013 の 12 月 23 日の記事として書かれました. C++11 のすすめ C++03 は普段から使っているけども C++11 はまだ触ったことがない人向けの入門記事です.最近は多くのプログラミングコンテストで C++11 が使えるようになりつつあります.C++11 で大幅に C++ が書きやすくなっているので,ぜひこの記事を読んで C++11 を使い始めてください!この記事では C++11 に追加された多数の新機能のうちコンテストに役立ちそう(もしくは多くの人が使いそうな)機能を紹介します. 手元での実行の仕方 GCC もしくは clang を利用していれば -std=c++0x というオプションを追加すれば C++11 の機能が有効になります. $ g++ -std=c++0x -o

    pn11
    pn11 2014/12/25
  • [cpp] std::vectorを配列の引数に渡す - はわわーっ

    配列を引数にとる関数にstd::vectorを渡すときは &v[0] &v.front() のどちらかを使えばよい。サンプルコード #include <iostream> #include <vector> void Show(const int* array, int size) { for(int i = 0; i < size; ++i) { std::cout << array[i] << ' '; } std::cout << std::endl; } int main() { std::vector<int> v(10); for(size_t i = 0, size = v.size(); i < size; ++i) { v[i] = i * i; } Show(&v.front(), v.size()); } 追記 5/24 id:bolerosさん、id:rhysdさん

    [cpp] std::vectorを配列の引数に渡す - はわわーっ
    pn11
    pn11 2014/12/25
    v.data()
  • C++で二次元配列を動的生成する3つの方法 - ねぎらぼ

    C++で二次元配列を動的生成するには?ということで、思いついた3つの方法 ①newする 動的生成といえばnew。C言語ならmallocとかcallocにあたります 以下はint型の二次元配列をnewして使ってdeleteする方法 #include<iostream> using namespace std; int main(){ /* new */ // int*の配列を動的生成 int **arr = new int*[20]; // 配列の各要素でintの配列を動的生成 for( int i=0; i<20; i++ ){ arr[i] = new int[10]; } // 実際に配列を使ってなんやかんや arr[19][9] = 12345; cout << arr[19][9] << endl; /* delete */ // 各要素を先にdelete for( int i=0

    C++で二次元配列を動的生成する3つの方法 - ねぎらぼ
    pn11
    pn11 2014/09/08
  • プログラミングのテクニック/入力の処理(C,C++) - 競技プログラミング Wiki*

    C由来の物 競技プログラミングでは、速度の関係上、C由来の入出力関数を使い、C++由来の入出力関数を避ける事が推奨されている場合が多いです。(例: JOI) scanf scanfはCではstdio.h、C++ではcstdioヘッダで定義されている関数で、様々な種類の入力をうけて、それに沿った型の変数に受ける事ができます。 第一引数で「フォーマット文字列」と呼ばれる形式に沿って、入力の形式を指定し、第二引数以降の任意個の引数で、入力を受ける先の変数のポインタを指定します。 フォーマット文字列等の詳しい説明はWikipediaで。 主に注意すべきは第二引数以降がポインタである事です。 また、競技とは関係ありませんが、実用プログラミングだと%sで文字列を入力として受ける場合に%10sのように長さを指定しないと、バッファオーバーランと呼ばれるセキュリティホールの元になったりするので注意が必要です

    プログラミングのテクニック/入力の処理(C,C++) - 競技プログラミング Wiki*
  • namespace

    About 標準C++ namespaceについて 以前ネット上で検索して見つからず、途方に暮れたのがこのnamespace(名前空間)だ。 2007/10/09 "using namespace seal::foo;"と書いていたのを"using seal::foo;"に修正。(Thanks to デフォルトの名無しさん) 名前空間とは 従来のC、及び標準化以前のC++の識別名はプログラムを構成する全要素中で一意である必要がある。例えば、stdio.hをインクルードすると、独自にFILEという型を作ることはできない。名前が衝突するため、コンパイルエラーとなるからだ。 標準ライブラリの型名や関数名は誰もが知ってるから、衝突が起こることはまずないが、違うベンダが開発したライブラリを組み合わせて使ったりすると、名前の衝突が起きる可能性がある。 そこでC++に導入されたのが名前空間である。名前空

    pn11
    pn11 2014/07/03
  • C++プログラムにRubyを組み込む

    Rubyの紹介 Rubyは、まつもとゆきひろ氏によって開発されているオブジェクト指向スクリプト言語である。最近ではスクリプト言語のような言語特性が「軽い」言語を総称して軽量級言語(Lightweight Language)、略してLLともいう。 Rubyは、クラスやMixin(継承を使用せず、動的に既存クラスのメソッドをカスタム・クラスに追加するための手段の一つ)のようなオブジェクト指向機能はもちろん、演算子のオーバーロード、例外処理、イテレータ、クロージャ、ガーベージ・コレクタ、正規表現などの機能も備えている。 これだけ強力な機能を持っていながら、Rubyの文法はとてもシンプルなものとなっている。例として、C++Rubyでそれぞれ簡単なクラスを定義してみよう。 #include <iostream> using namespace std; class Person { private

    pn11
    pn11 2014/06/03
  • ハノイの塔-Win32プログラミング日記

    pn11
    pn11 2010/08/04
  • 音川英一のページ

    E i i c h i O t o g a w a ' s P a g e Eiichi Otogawa's Page

    pn11
    pn11 2010/02/07
  • 1