- 1 名前:デフォルトの名無しさん [2011/09/15(木) 00:17:43.25 ]
- スレを勃てるまでもない低俗なC/C++の質問はここでお願いします。
過去ログ 01 pc11.2ch.net/test/read.cgi/tech/1167476845/ 02 pc11.2ch.net/test/read.cgi/tech/1178503366/ 03 pc11.2ch.net/test/read.cgi/tech/1187521676/ 04 pc11.2ch.net/test/read.cgi/tech/1221633708/ 05 pc11.2ch.net/test/read.cgi/tech/1230516307/ 06 pc11.2ch.net/test/read.cgi/tech/1231564903/ 07 pc11.2ch.net/test/read.cgi/tech/1232983248/ 08 pc12.2ch.net/test/read.cgi/tech/1235921779/ 09 pc12.2ch.net/test/read.cgi/tech/1240022781/ 10 pc12.2ch.net/test/read.cgi/tech/1242300936/ 11 pc12.2ch.net/test/read.cgi/tech/1245059383/ 12 pc12.2ch.net/test/read.cgi/tech/1248010352/ 13 pc12.2ch.net/test/read.cgi/tech/1260842197/ 14 pc12.2ch.net/test/read.cgi/tech/1269273471/ 15 pc12.2ch.net/test/read.cgi/tech/1273368706/ 16 hibari.2ch.net/test/read.cgi/tech/1279285647/ 17 hibari.2ch.net/test/read.cgi/tech/1285115590/ 18 hibari.2ch.net/test/read.cgi/tech/1291571263/ 19 hibari.2ch.net/test/read.cgi/tech/1308106024/
- 508 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 23:17:53.77 ]
- そうだな生成プログラムでも書いた方がらしいな
- 509 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 18:00:43.29 ]
- Visual Studio2003です。
.cファイルを右クリックしてコンパイルすると.objファイルができるじゃないですか。 このできた.objファイルを他のプロジェクトで使いたいんですよ、javaの.classファイルみたいなイメージで。 でもソリューションエクスプローラには「ソースファイル」「ヘッダーファイル」「リソースファイル」とあるんですが、どこに置いてどうincludeすれば使えるようになるんですか?
- 510 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 18:21:54.58 ]
- ・.objはリンカが扱う。
・ただし、リンカコメントというのをソースに埋め込むと、.cで.objを引っ張り込むことを記述できる。
- 511 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 19:57:25.12 ]
- >>510
リンカコメントですね、ググってみます。 ありがとうございます。
- 512 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 20:22:45.05 ]
- うん、ぐぐったらなんかわかるだろ。
と思ってたら、通称だったかも。うまく出せない。 > #pragma comment(linker, "...") こういうのなので、ぐぐってみそ。 で、そんなことをするうちに、include 的に記述するより、 プロジェクト設定みたいので指定するのが自然ってのがわかると思う
- 513 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 20:49:19.22 ]
- Makefileに変換してnmake使うことできないの?
後々そっちの方がいいよ
- 514 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 09:03:21.79 ]
- >>512
ありがとうございます。色々試してみます。 >>513 nmakeって元から入ってるのならいけると思います。 自分のバソコンじゃないのでインストールとかはできないです。
- 515 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 14:49:21.25 ]
- ナマポとスマポどっちもぶち込めるコンテナってどう書くんですか?
- 516 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 23:43:59.13 ]
- スマポのナマポをぶちこんどけばおk
- 517 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 07:35:41.50 ]
- WindowsのC/C++のUNICODE両対応アプリのソースって、
文字定数と文字列定数はいちいち_T()で囲わないとダメですか? 一部をANSIで扱うことってありえますか?
- 518 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 08:09:51.62 ]
- 今の流行はAPIに食わせる場合は_T()
食わせない場合はUTF-8として扱う かな
- 519 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 22:37:04.75 ]
- WindowsはAPIにAやWがついてるやつを使えば
_T使わなくても平気じゃないかな
- 520 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 22:53:52.30 ]
- CString使えばいいよ
- 521 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 22:56:40.08 ]
- 時刻を管理するクラスTimeのメンバ関数として、
分を返す int Time::min( ) const を用意したのですが、 VC++ 2010だと、windows.hをインクルードした際に マクロmin(a,b)(((a)<(b))?(a):(b)) と解釈されてしまい 引数が足りないというコンパイルエラーになります。 このコンパイルエラーを回避するためには min()の名前を変更する以外に方法は無いのでしょうか? よろしくお願い致します。
- 522 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 23:22:39.49 ]
- #define NOMINMAX か (t.min)();
- 523 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 23:23:52.48 ]
- >>521
includeした後にundefする。でも衝突しそうな名前は初めから避けるべき
- 524 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 00:39:48.02 ]
- ファイル名やフォルダ関係はUNICODEで統一しといた方がいいかも
ファイルの中身は知らん
- 525 名前:521 mailto:sage [2012/01/30(月) 09:55:06.10 ]
- >>522
>>523 ありがとうございます。
- 526 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 10:10:56.90 ]
- stdと衝突するあたりM$の頭の悪さが露呈してるよなぁ
- 527 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 14:50:02.33 ]
- maxマクロを書いたMSのプログラマは絶対に許さない。絶対にだ
- 528 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 22:38:39.10 ]
- >>526
windows.hって相当昔からあるから、STLが規格に入る以前に作られてたとか
- 529 名前:デフォルトの名無しさん mailto:sage [2012/02/03(金) 00:18:22.76 ]
- C++の大規模ソースをソーストレースするときのおすすめツールを教えてください。
ある関数の宣言もとや使用箇所を手早く探せるようにしたいです。 以下、今まで使ってたもの。 ctags :同じ名前の関数(オーバーライドされてる関数)があるとき、 候補をリスト表示できない。 関数やメンバを使用している箇所を表示できない。 GNU Global :構造体のメンバを検索したり、 関数定義もとを探すときに見つからないことがある。 Windows 、Linux のどちらかで使えれば良いです。
- 530 名前:デフォルトの名無しさん mailto:sage [2012/02/03(金) 00:31:09.18 ]
- grepや全文検索。
コンパイラ提供のインクルードパスをgrepかけることあるがそれほど時間掛からん。
- 531 名前:デフォルトの名無しさん mailto:sage [2012/02/03(金) 10:17:31.94 ]
- ビルド環境さえ用意できるならなにもなくてもなんとかなるね
grep,ファイラー,テキストエディタはさすがに用意できるだろうし
- 532 名前:デフォルトの名無しさん mailto:sage [2012/02/03(金) 13:40:47.76 ]
- ソースを全文検索対象にして、indexつくらせちゃう
まったくのベタだが、結局これがいちばん早かった
- 533 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 15:08:59.03 ]
- class c_A、class c_Bがあって、
〜〜ヘッダファイル内〜〜 #include "c_B.h" class c_A { c_B hoge; }; 〜〜〜〜〜〜〜〜〜〜〜 でインスタンス生成できちゃうんですか
- 534 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 15:46:32.64 ]
- >>529
つ[Doxygen] >>533 できない。
- 535 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 18:41:28.49 ]
- C++の規格上vector.end()をインクリメントすると何が帰ってくるか未定義?
だとすると内部で+=や++オペレータを呼ぶだけのadvanceは終わりをチェックしてくれていないの?
- 536 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 18:43:48.01 ]
- はい
- 537 名前:533 mailto:sage [2012/02/05(日) 19:56:00.52 ]
- すいません、c_Aのインスタンスを生成したときに、内部に持っているc_Bの
インスタンスも生成されるのでしょうか? という質問でした
- 538 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 19:59:31.87 ]
- はい
- 539 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 20:44:34.41 ]
- それで納得したならそれでいいし、
それで何か困るなら、ラッパクラスを作ってもいい
- 540 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 21:03:30.46 ]
- >>536
ohそうなのか。ありがとう 規格上どのコンテナのイテレータでもそうなってる訳?
- 541 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 21:05:46.99 ]
- はい
- 542 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 23:09:47.26 ]
- ほんとにちょっとした質問なんですけど、
ifstream ifs("csvファイル.csv"); string line; getline(ifs,line); //※ここで、別のファイルを開きたくなったので、 ifs.open("別のファイル.csv"); ってやった場合、マズかったりしますか? それとも、ifsは「別のファイル.csv」をちゃんと頭から読み込んでくれますでしょうか?
- 543 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 23:16:38.66 ]
- はい
- 544 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 23:19:07.66 ]
- マズかったりします
- 545 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 01:10:08.63 ]
- >>541
thx! だとイテレータ使ったループって使いにくくない? Cだとfor(i=0;i<10;i+=2);で偶数飛ばせるけどイテレータはいつもend()になったかどうか チェックしないといけない。ぶっちゃけ改悪なのでは?
- 546 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 01:35:42.46 ]
- listなどの実装を考えると一般的にイテレーターがi<Nと書けない(非常にコストが掛かる)ことに気がつく
- 547 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 07:56:49.62 ]
- コンティナーのせっかく抽象化したい照れーたをインクリメイツ
って発想が キモイと思うのだが 片リストを逆から辿ろうとしたら 「このコードはバヤイ!リバースコピーをいテレータ用に確保なう!」 「もっといい方法があるのにp」 と忠告してくれるコンパイラーがあるといい
- 548 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 08:07:20.64 ]
- >>546
大概の実装はlistのsizeは定数時間になっていると思うが
- 549 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 11:33:49.80 ]
- >>548
それとこれとは関係ない。
- 550 名前:デフォルトの名無しさん mailto:sage [2012/02/07(火) 16:30:45.59 ]
- while(true){
int a = 1; cout << a << endl; a = 2; } whileブロック内で変数を定義したらどんなもんかとこれを試してみたら 無限に1が出力されました。初期化って一度だけかな?と思ったけど この結果ということは、これは一回のループごとに毎回変数が定義されてる ということですか?auto変数の確保→破棄を延々と繰り返すみたいな。 だとするとwhileブロックの外で定義した場合に比べて効率が悪いのですか?
- 551 名前:デフォルトの名無しさん mailto:sage [2012/02/07(火) 16:33:50.32 ]
- >>550
気にするほどの差はないだろ。最適化される。 使うときに明示的に定義した方が速いこともある。 長期間使用され続ける物は、CPUキャッシュに入りにくくなる可能性がある。
- 552 名前:デフォルトの名無しさん mailto:sage [2012/02/07(火) 16:39:03.86 ]
- レスどうもです。
たいした差はないということですが、プログラミング作法としても whileブロック内での変数定義ってあたりまえのように使われるの でしょうか(初期化のあるなしに関わらず)。
- 553 名前:デフォルトの名無しさん mailto:sage [2012/02/07(火) 16:45:50.33 ]
- あたりまえのように使われる
- 554 名前:デフォルトの名無しさん mailto:sage [2012/02/07(火) 16:46:57.81 ]
- そうですか、ありがとうございました。
- 555 名前:デフォルトの名無しさん mailto:sage [2012/02/07(火) 19:00:20.48 ]
- while(true)
{ std::vector<int> tmp(1000); } とかなら考え直したほうがいいな
- 556 名前:デフォルトの名無しさん mailto:sage [2012/02/07(火) 19:06:36.55 ]
- while(true) {
static std::vector<int> tmp(1000); } つまりこういうことですね?
- 557 名前:デフォルトの名無しさん mailto:sage [2012/02/07(火) 23:25:52.31 ]
- 変数の生存が長く使われないほど
CPUキャッシュ ⇒ メモリ ⇒ HDD と配置が格下げされる。 HDDまでいったら値を読み込むのに時間食う。 新規に生成したほうが得。 メモリにあったとしてもそれを読み込むよりL1キャッシュに新規に生成した方が速いだろう。
- 558 名前:デフォルトの名無しさん mailto:sage [2012/02/08(水) 01:45:33.96 ]
- >>557
キャッシュミスより生成コストのが普通に高いと思うけど、 そんな事ありえるの?
- 559 名前:デフォルトの名無しさん mailto:sage [2012/02/08(水) 03:11:26.31 ]
- プリフェッチも考慮するとキャッシュミス自体それほど起こるかどうか
- 560 名前:デフォルトの名無しさん mailto:sage [2012/02/08(水) 08:25:58.69 ]
- そもそも、ローカル変数なら同じコードに落ちる可能性が高い。
つまり、関数突入時にスタックポインタを移動するだけ。
- 561 名前:デフォルトの名無しさん mailto:sage [2012/02/08(水) 08:58:10.22 ]
- そういうくだらない最適化は最後の最後にしろ
- 562 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 18:45:29.51 ]
- クラスメンバ関数の宣言と定義を分けるときにinline化したい場合は
宣言か定義のどちらかにinlineが入っていればOKですか? それとも両方書かないとだめですか?
- 563 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 22:11:37.43 ]
- int a[4];
があったとして、 もしa[0],a[1],a[2],a[3]全てが0だったら、という条件式は if(a[0]=0 && a[1]=0 &&a[2]=0 &&a[3]=0) 以外に表せますか? なんかもっとスマートに書けたりできますか?
- 564 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 22:22:55.93 ]
- if(a[0]|a[1]|a[2]|a[3])
スマートかどうかは知らん
- 565 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 22:25:24.66 ]
- そもそもそれ代入やん
- 566 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 22:27:17.51 ]
- ひっかけ乙だったのかw > 565
- 567 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 22:37:50.98 ]
- if(a[0]=a[1]=a[2]=a[3]==0)
とかだめだったっけ
- 568 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 22:52:52.39 ]
- 中身ぶっこわしてもいいのならアリ・・・か?
- 569 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 23:27:14.24 ]
- >>563
int i; for(i=0; i<4; i++) if(a[i] != 0) break; if(i == 4) { //全て0のときの処理 }
- 570 名前:デフォルトの名無しさん mailto:sage [2012/02/13(月) 00:26:09.73 ]
- intが32bitで128bitレジスタがあったら
if (*(int128*)a != 0)
- 571 名前:デフォルトの名無しさん mailto:sage [2012/02/13(月) 08:16:17.69 ]
- if( a[0]*a[0] + a[1]*a[1] + a[2]*a[2] + a[3]*a[3] == 0 )
- 572 名前:デフォルトの名無しさん mailto:sage [2012/02/13(月) 08:23:37.82 ]
- if(a[0] || a[1] || a[2] || a[3]) {
; /* なにもしない */ } else { }
- 573 名前:デフォルトの名無しさん mailto:sage [2012/02/13(月) 12:38:17.22 ]
- >>562
宣言にinlineは、書いても書かなくてもinlineじゃないか? 定義はinlineにしたいならヘッダに書くべきだし、 ヘッダに書くとして複数includeする場合は、 inlineを書かないといけない。 1ファイルでしか使わない場合はシラネ
- 574 名前:デフォルトの名無しさん mailto:sage [2012/02/13(月) 14:12:45.40 ]
- テンプレート関数xxxにfuncを渡すときには自動的にTとUが設定されるのに
テンプレートクラスyyyにfuncを渡すときには、自分でTとUを指定しなければなりません。 この違いはなんなのでしょうか? 環境は gcc version 4.6.1 です。 template<class T, class U> void xxx( T (*func)(U) ) { } template<class T, class U> class yyy { private: T (*f_)(U); public: yyy( T (*f)(U) ): f_(f){ } }; double func( int v ){ return (double)v*0.1; } int main( ) { xxx( func ); //yyy obj( &func ); //templateの型を指定しないとコンパイルエラー yyy<double,int> obj; return 0; }
- 575 名前:デフォルトの名無しさん mailto:sage [2012/02/13(月) 18:30:09.86 ]
- >>574
関数は型推論してくれるが、クラスはしてくれない決まりだから
- 576 名前:574 mailto:sage [2012/02/13(月) 22:46:09.01 ]
- >>575
ありがとうございます。 std::mem_fun_refとその内部で呼んでいるstd::mem_fun_ref_t との関係がイマイチわからなかったので色々試していたところでした。 テンプレート関数のstd::mem_fun_refで型推論して、 テンプレートクラスのstd::mem_fun_ref_tに伝えているのですね。
- 577 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 12:40:26.78 ]
- こういう命名ってC++では合法ですか?
namespace _hoge { struct _fuga { void _func(void); }; }
- 578 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 13:02:26.24 ]
- >>577
×namespace _hoge { ○struct _fuga { ○void _func(void); 先頭にアンダースコアはオススメしない
- 579 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 19:47:17.24 ]
- これってどういう意味でだめなんだっけ?
> ×namespace _hoge { ネームスペース名って先頭アンダースコアだめなんだっけ?
- 580 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 20:04:49.94 ]
- >>579
グローバルスコープが禁止
- 581 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 20:43:27.29 ]
- どうもです。
じゃあ入れ子になってれば可能なんですな。
- 582 名前:デフォルトの名無しさん mailto:sage [2012/02/21(火) 12:57:48.48 ]
- 文字列の配列を10個用意して最初の文字列にstrcpyでデータをコピーしたいのですがエラーになってしまいます
char* p[10]; p[0] = "Spring"; strcpy(p[0],"Summer"); 一体どこをどう直せばよいのでしょうか?
- 583 名前:デフォルトの名無しさん mailto:sage [2012/02/21(火) 13:03:26.26 ]
- std::string p[10];
p[0] = "Spring"; p[0] = "Summer";
- 584 名前:582 mailto:sage [2012/02/21(火) 13:45:23.18 ]
- ありがとうございます、string型でやってみます。
ちなみにstrcpyを使うのは間違いなのでしょうか? 何が間違いなのかよく分からないのです
- 585 名前:デフォルトの名無しさん mailto:sage [2012/02/21(火) 13:51:30.39 ]
- メモリについてもう少し勉強しなさい
- 586 名前:582 mailto:sage [2012/02/21(火) 13:55:37.67 ]
- 分かりました、もう少し勉強します
- 587 名前:デフォルトの名無しさん mailto:sage [2012/02/21(火) 15:28:01.01 ]
- 浮動小数の比較で
a=1.0; b=1.0; if ( a <= b ) みたいにするのは、やめたほうがいいですか? a=1.0 とすると実際は a=1.00000000001 みたいになってて <= の評価が うまくいかない可能性を危惧しています。とりあえず今のところ問題なさそうなんですが。 Fortranやってたときは、よくこんなふうにやってました。 eps=1e-30; a=1.0-eps; b=1.0; if ( a <= b )
- 588 名前:デフォルトの名無しさん mailto:sage [2012/02/21(火) 15:30:17.33 ]
- 場合による
- 589 名前:デフォルトの名無しさん mailto:sage [2012/02/21(火) 15:45:14.64 ]
- 問題出るまでそのまま使っとけ。
問題あったら任意精度や整数計算へおきかえればいい。 精度が64、128ビットと固定されていればどれだけビット数上げても誤差が出る。 その初めに引いとくのは駄目だろ。もしaが負の方向へ小さかったら間違える。
- 590 名前:デフォルトの名無しさん mailto:sage [2012/02/21(火) 23:19:04.96 ]
- 一致じゃなくて大小関係なんだろ?
単に if( b > a) でいいのでは… 一致が必要なときは、確かに、EPSILON系の定数を使うけど。
- 591 名前:デフォルトの名無しさん mailto:sage [2012/02/21(火) 23:29:00.68 ]
- 厳密には大小でもダメだよ
計算機上の値では0 < xが真になる場合でも真値では0 < xが成立しない事は普通にある
- 592 名前:デフォルトの名無しさん mailto:sage [2012/02/25(土) 17:10:03.20 ]
- vector<bool>に限らず特殊化されたテンプレートクラスを
特殊化しないで使いたい場合はどうすればいいんですか?
- 593 名前:デフォルトの名無しさん mailto:sage [2012/02/25(土) 17:36:17.81 ]
- そんなことはできない
- 594 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 03:37:46.38 ]
- 具体的に何がしたいんだろう、ちょっと読めない
- 595 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 05:19:34.45 ]
- hoge<bool> という特殊化されたオリジナルのテンプレートがあって、
それを、hoge<int>でも使いたいとか、そういうことかな? 他はまったく思いつかない。
- 596 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 07:25:45.13 ]
- 何でそうしたいか理由が全く分からん。やるならメンバにboolだけ持たせた構造体を定義してそれを渡すとか?
- 597 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 13:27:55.80 ]
- 最適化などのために特殊化されてるけど
他のコードと互換性がなくて仕方なく非特殊化バージョンを使いたいなーということはあるでしょ bool参照しか受け取らない関数にvector<bool>の要素渡せないとか
- 598 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 16:53:20.32 ]
- 質問させていただきます。PGを書く問題ではないのですが、
「ソートプログラムとデータ構造について 具体的なソートプログラムの名前をあげ、 とのようなデータ構造(配列、単方向リスト、双方向リスト、循環リストなど)が なぜ適しているか述べろ。 が分かりません!教えてください
- 599 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 17:39:01.94 ]
- 丸投げは宿題スレ行け
- 600 名前:デフォルトの名無しさん mailto:sage [2012/02/27(月) 00:31:23.68 ]
- これは簡単なようでいて、こういうのに強くないと解けない 宿題スレが適当
- 601 名前:デフォルトの名無しさん mailto:sage [2012/02/27(月) 10:11:12.67 ]
- 宿題スレでも扱いが酷いな。テンプレ無視だからしょうがないけど
まずソートの種類を調べるくらいは自分で出来るんじゃない? それからそのソートに適したデータ構造と理由を聞けば… ところで循環リストが適してるソートなんてあったっけ?
- 602 名前:デフォルトの名無しさん mailto:sage [2012/02/27(月) 11:07:15.84 ]
- 循環ソート
- 603 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 00:20:56.14 ]
- c++ってchar使うの?
文字列はstringを必ず使うべきなの?
- 604 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 00:33:04.28 ]
- stringはcharがもとになっている。資源の無駄を減らすならchar
- 605 名前:デフォルトの名無しさん mailto:sage [2012/03/16(金) 07:49:56.89 ]
- 純粋に高級言語として使うなら「1文字の文字」を扱うときぐらいだが
C++には高級アセンブラたるC言語の後継としての役割もあるから無いと困る 組み込み系はもちろんだし、そうでなくてもAPIとかはchar[]ベースだったりする
- 606 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 12:18:11.06 ]
- charを要求するライブラリを呼ぶ限り、charは不滅
もちろん、charを極力廃すような書き方をすることは可能だろう
- 607 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 20:24:47.88 ]
- C++のステートパターンの骨組みというか
サンプルプログラムを教えてください。
- 608 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 23:02:30.36 ]
- >>607
https://www.google.co.jp/
|

|