【初心者歓迎】C/C++室 Ver.99【環境依存OK】 at TECH
[2ch|▼Menu]
[前50を表示]
700:674
16/10/02 21:12:02.90 Ojkv5xCl.net
答えてくれた方、ありがとうございました。
細かな説明はよく分かりませんでしたが…。

701:デフォルトの名無しさん
16/10/02 23:47:14.06 arJtaGW9.net
>>676-687のカオスなやりとりから答えを読み取ったらエスパー
取りあえず『endlは改行した後、ただちに出力させる』と覚えと


702:け



703:デフォルトの名無しさん
16/10/03 00:01:19.31 H4QXTqVf.net
endlはフラッシュかかるから素人がprintfと比較して無茶苦茶遅いとか言い出す。
まあリダイレクトせず端末だと変わらんのだが

704:デフォルトの名無しさん
16/10/03 00:20:07.22 mwBLg7E9.net
なんでprintfの方がcoutより速いのですか?

705:デフォルトの名無しさん
16/10/03 01:16:43.54 +IxkRGi8.net
フォーマットの処理が入るからじゃないかな

706:デフォルトの名無しさん
16/10/03 01:17:57.28 +IxkRGi8.net
逆か
printfのほうが遅いのか

707:デフォルトの名無しさん
16/10/03 01:21:03.00 +IxkRGi8.net
さらに逆だprintfのほうが早いのか
スレ汚しスマン

708:687
16/10/03 01:27:52.00 z0FmA4JV.net
>>689
では\nはただちに出力させないんですか?
今読んでるRさんの本クセあるんです…。

709:デフォルトの名無しさん
16/10/03 01:36:43.55 4zOL+ykU.net
またカオスになってるなー

710:デフォルトの名無しさん
16/10/03 01:51:12.26 KavFsBqz.net
ちょっとくらい実装読もうよ

711:デフォルトの名無しさん
16/10/03 02:09:06.85 HZ6jvwGI.net
速いか遅いかは実装の問題だから個別の話になるけど
ストリームの下回りにprintf系を呼び出してる実装は遅くなる要素しかない

712:デフォルトの名無しさん
16/10/03 02:20:08.83 a2PPRqH/.net
\n は単に、幾つかある制御文字の中の1つだろ。
それが文字列の中に、入っているというだけ
その文字列がいつ出力されるのか、とは別の話

713:デフォルトの名無しさん
16/10/03 13:28:46.20 /2MLxVBW.net
printfでも開業すればフラッシュかからなかった?
デフォルトはどうだったけか

714:デフォルトの名無しさん
16/10/03 13:30:37.31 RKI08UEe.net
しらないが、printf自体の標準がフラッシュつきでは。仕様かは不明だが遅延するコンパイラはしらん。

715:デフォルトの名無しさん
16/10/03 13:33:00.39 AhgtfWPz.net
ここのタイミングで書き出しをある程度確定させたいなら
fflush() を明示的によぶしかなかろうて

716:デフォルトの名無しさん
16/10/03 13:33:43.23 RKI08UEe.net
有名だったか・・・

UNIX系でprintfを使って文字を表示する場合、改行の"\n"を出力しないかぎり画面に文字が表示されないことは有名な話です。
しかし、場合によっては改行しないで画面に文字を表示したいときがあります。
そういうとき、fflushを使うと望み通りに文字列を画面に表示する事が可能です。
URLリンク(www.geocities.co.jp)

717:デフォルトの名無しさん
16/10/03 14:38:26.43 D+L5V3ve.net
printfてかstdoutがデフォルトでは行バッファなのな
stderrはバッファなし
setbuf(stdout, NULL)すればstdoutもバッファしなくなる

718:デフォルトの名無しさん
16/10/03 15:30:00.70 +VMXdctO.net
もともと速い装置に吐き出すときはバッファは仇となるってこと?

719:デフォルトの名無しさん
16/10/03 15:37:18.77 Bx8lzmG+.net
その都度fopen fcloseしてたら遅いから
最初にfopen 終了時にfclose 書き込み時に毎回fflushしてるわ

720:デフォルトの名無しさん
16/10/03 17:54:45.44 lnVrcGil.net
printfしたあとに毎回fflushしたことは有るが
iostream並みに遅くなった試しがない

721:デフォルトの名無しさん
16/10/03 19:12:08.38 64xioRW9.net
printfのfがflushのfだと思ってた頃が僕にもありました

722:デフォルトの名無しさん
16/10/03 21:50:18.41 KavFsBqz.net
streamは型を決めるために色々やってるからな
その代わりstreamは型安全
型を決め打ちしてるprintf,scanfとの速度の違いはそこ

723:デフォルトの名無しさん
16/10/03 22:18:16.86 eL0UbW2l.net
まじかよ
型安全はオーロードでゼロオーバーヘッドだと思ってたぜ

724:デフォルトの名無しさん
16/10/03 22:23:57.42 jTjA6fWe.net
だからunixでは標準出力が端末か否かでprintfの改行で自動フラッシュかどうか変わるんだって。

725:デフォルトの名無しさん
16/10/03 22:38:55.02 jTjA6fWe.net
フォーマットを文字列定数で与えたprintfはコンパイラがコンパイル時にフォーマット文字列のパースまでしてしまうという特別な最適化かけるから速い。
組み込みの疑似関数みたいなもの。
真面目に関数呼び出しするならstreamの処理の方が速い筈なんだけどね。
さらにsync_with_stdioも重い原因

726:デフォルトの名無しさん
16/10/04 01:04:24.06 yYMkyBvy.net
今日プログラム作ってたらセグメンテーションフォールトが出て解決できなかったから
力を貸して欲しいです。
unsigned char ch; // バイナリファイルを読み込んだ結果
int length; // バイナリファイルのサイズ
std::string methodA () {
string str = std::string(ch, length) // バイナリを格納したunsigned char型文字列をstring型に変換
printf(

727:デフォルトの名無しさん
16/10/04 01:52:17.07 tduX/YMQ.net
C++にオーバーヘッドなど許されん!

728:デフォルトの名無しさん
16/10/04 08:30:12.26 cpDRv874.net
>>713
unsigned char ch; // これは1バイトしか格納できません

729:デフォルトの名無しさん
16/10/04 09:15:52.17 b3H+v7Is.net
>>713
str = std::string(length, ch);

730:デフォルトの名無しさん
16/10/04 16:26:43.41 Izmk1Ydi.net
アンサインド キャー

731:デフォルトの名無しさん
16/10/04 21:11:47.03 WEyUe7wf.net
ところでコンストラクタは関数の一種ですか?

732:デフォルトの名無しさん
16/10/04 22:02:14.17 PvvXDjpC.net
イエス、マダーム

733:717
16/10/04 23:57:04.72 WEyUe7wf.net
>>719
ありがとうございます。
ただ、「わかりやすいJava」という本で(Javaの本ではありますが)、コンストラクタは、名前がクラス名と同じであり、戻り値の記述も無いため、メソッドでは「ない」と明言されていたので当惑していました。
どうとらえればいいですかね?

734:デフォルトの名無しさん
16/10/05 00:06:46.73 Pt+EeEmo.net
C++とJavaは違うからなんとも
その本が信用できないなら規格書かなんかでJavaにおけるメソッドの定義を調べてくれ

735:デフォルトの名無しさん
16/10/05 00:13:00.25 SIzgJBAg.net
C++:コンストラクターは関数。メソッド何それ
C#:コンストラクターは関数だがメソッドではない
JavaScript:コンストラクターは関数
Java:関数何それ。コンストラクターはメンバーですらない。メソッドでもない

736:デフォルトの名無しさん
16/10/05 00:31:15.00 SIzgJBAg.net
Javaはこうだな
・クラスの中に含まれるもの
 ・コンストラクター
 ・メンバー
   ・フィールド
   ・メソッド
   ・インナークラス
C++はこうか
・クラスの中に含まれるもの=メンバー
 ・static_assertとか
 ・コンストラクター <関数>
 ・非静的メンバー関数 <関数>
 ・静的メンバー関数 <関数>
関係無いがC++のドラフトのメンバー定義に「deduction guide」が追加されてるな 何だこりゃ

737:719
16/10/05 01:31:05.26 D107n7zL.net
>>721-723
ありがとうございます。
みなさんのレスを参考に、C++では関数ですがJavaではメソッドではない、という捉え方をさせて貰うことにします。

738:デフォルトの名無しさん
16/10/05 01:38:47.50 TxD7Qy4b.net
最後『ー』で伸ばされるとうっすらストレスを感じる

739:デフォルトの名無しさん
16/10/05 01:45:28.08 RYEURUHh.net
パンにバタ塗ってコーヒ飲んでろ

740:723(追記)
16/10/05 02:02:03.30 D107n7zL.net
調べたらどうやら関数とメソッドが似てはいるものの違うようです。
メソッドはクラスの中でのみ定義されるもので云々とあり、この辺に理由があるみたいです(間違っていたらすいません)。

741:デフォルトの名無しさん
16/10/05 02:04:14.94 PU8Th8F3.net
麺麭に牛酪塗って珈琲飲んでろ

742:デフォルトの名無しさん
16/10/05 03:21:56.55 VfzqlzrY.net
Delphiの規格で悪いけど・・・
メソッドってのはクラスのメンバ関数。
暗黙のうちにthisポインタを引数として持つものを言う。
関数は普通の関数。引数に余分なものは追加されない。

743:デフォルトの名無しさん
2016/10/06


744:(木) 00:35:54.12 ID:U3zAstIl.net



745:デフォルトの名無しさん
16/10/06 00:53:46.69 lB9calLC.net
>>730
ビルド順かなぁ?

746:デフォルトの名無しさん
16/10/06 06:10:09.00 5ou6x1p8.net
昔のC、というか今でもmakeでビルドするような環境だと、
リンク時にライブラリを書き並べる順番によっては
外部参照名の解決に失敗するって問題が起きたが、
統合開発環境にも適用できる話か分からん。

747:デフォルトの名無しさん
16/10/06 06:32:05.17 WlcexWUS.net
依存関係設定してないとか
プロジェクトまたがるヘッダファイルをプロジェクトに含めてないとか

748:デフォルトの名無しさん
16/10/06 07:01:57.67 5esayM0K.net
そもそもリンクというものを理解してないだろ

749:デフォルトの名無しさん
16/10/08 13:15:21.33 uEHRjK0l.net
ポインタのポインタについて教えてください。
int a[640][480];
みたいなことをやりたいのですが、サイズがデカすぎるとかでエラーになるので
int **a;
ってやってみました。
a[0][0]=0;
はエラーなく通るのに
a[1][0]にするとエラーになります。
何が原因で、どうやったらエラーを出さなくできますか?

750:デフォルトの名無しさん
16/10/08 13:22:46.86 5VQX36u5.net
>>735
URLリンク(members3.jcom.home.ne.jp)

751:デフォルトの名無しさん
16/10/08 13:25:37.16 d3anv779.net
>>735
ポインタと配列は異なる
特にポインタのポインタと二次元配列は全然異なる
その辺の理解が足りないのが原因

752:デフォルトの名無しさん
16/10/08 13:30:01.26 ++vYQgKn.net
>>735
ポインタの指す先の領域を用意していないからだろう
URLリンク(ideone.com)

753:デフォルトの名無しさん
16/10/08 13:31:28.24 S1TCpLDs.net
//メモリの確保をしてないか、メモリの確保の仕方が不十分なのが原因かと考えます

//↓はポインタのポインタなので
int **a;


//以下の様に確保した後に
const int width = 640, height = 480;
a = new int*[width];

//さらに各要素ごとにメモリを確保する必要があります
for (int i = 0;i<width;++i) {
a[i] = new int[480];
}

//開放するときも以下の様にする必要があります
for (int i = 0; i<width; ++i) {
delete[] a[i];
}

delete[] a;

754:デフォルトの名無しさん
16/10/08 13:33:18.30 S1TCpLDs.net
height=480ってしたのに下で480書いてしまった悲しい

755:デフォルトの名無しさん
16/10/08 13:54:03.31 G10JdEJj.net
>>736-740
皆さん親切にありがとうございます。
無事プログラムが動きました、感動しました

756:デフォルトの名無しさん
16/10/08 14:04:34.19 YyjS4FMP.net
>>739
スマポを使いましょう
URLリンク(ideone.com)

757:デフォルトの名無しさん
16/10/08 14:11:31.33 5VQX36u5.net
わざわざ2次元配列をポインタで表現するくらいなら
std::vector<std::vector<int>> a(640, std::vector<int>(480));でいい

758:デフォルトの名無しさん
16/10/08 14:12:07.25 S1TCpLDs.net
俺もcで書いてりゃよかったな

759:デフォルトの名無しさん
16/10/08 15:11:38.03 c34JK7xB.net
>>739
確保解放でもforってめんどくね?
int **a, width = 5, height = 10;
a = new int*[width];
a[0] = new int[width*height];
for(int i=1;i<width;i++) {
 a[i] = (&a[0][width*i]);
}
// a[i][j]でアクセスして色々処理
delete [] a[0];
delete [] a;

760:デフォルトの名無しさん
16/10/08 16:07:58.05 zvqyvirK.net
>>739
Javaからこっち来た人かな?

761:デフォルトの名無しさん
16/10/08 16:13:12.13 S1TCpLDs.net
>>742,745
ポインタだけ作ってnewあるいはmalloc等メモリ確保をしない辺りの習熟度の人間にそのレベルのものを提示していいとは考えなかった

何を目的に>>735でこのようなことをしようと考えたのかが提示されない状態で質問の回答になる最低限のものを用意した

>>745
非常に面倒くさい

762:デフォルトの名無しさん
16/10/08 17:08:39.87 h4PrAZ2Y.net
質問者のレベルや質問内容に合わせた回答をするのは当然のこと。
他人の回答を見て「お前のやり方はまだまだだ」などとドヤ顔する方が恥ずかしい。
それでもコンテナー・スマポまではまだ良いとして、自分でdeleteするコードを自慢し始めるのは可哀想で仕方ない

763:デフォルトの名無しさん
16/10/08 17:38:45.55 ij4u4Pj5.net
レベルってなら初心者にnew deleteさせるとか一番ダメなパターンじゃね。

764:デフォルトの名無しさん
16/10/08 18:00:13.42 c34JK7xB.net
>>747
だよなw
>>748
元の回答に合わせてそれならこっちが楽だなとレスしただけだぞ?
被害妄想か?

765:デフォルトの名無しさん
16/10/08 18:26:43.73 S1TCpLDs.net
>>750
あえてやった理由はこんな感じ

640と480ってなんか画像っぽいなー
でもその並びだとたぶん縦横逆だと思うんだよなー
でも画像とか一言も言ってないしなー
っていうかまだポインタのポインタとか手を付けるのやめた方がいいんじゃないかなー
でも対案だしたりやめろって言って質問の回答になってないって言われるのも嫌だしなー

めんどくささのアピールもかねて馬鹿正直に確保と開放ならべよう

766:デフォルトの名無しさん
16/10/08 18:29:21.29 ZGEVZk/0.net
コードは書かずに済むに越したことはない
コードは書けば書くほどバグの発生確率を上げるのだから
好き好んでごちゃごちゃ書き連ねる奴の気が知れない

767:デフォルトの名無しさん
16/10/08 18:46:06.88 eEcijZqv.net
>>739は初心者風というか、まだわかるけど
>>745はもうなんていうか酷い
突っかかっといてこれってどうよ

forで開放するのが面倒だからとそんなどうでもよいこと考えて
トリッキーなこと考える暇があるんなら
もっと簡単にこう↓書けば済むだけの話なのに

int (*a)[640] = new int [480][640]; //確保
//↓使う
for( int y = 0; y < 480; ++y )
for( int x = 0; x < 640; ++x )
{
  a[y][x] = 0;
}
delete[] a; //解放

これなら初心者でも全然わかるし、確保にも開放にもfor文いらない
圧倒的シンプル
もともとC++はこうして使うことを想定して文法が作られている
まったくの既定路線、標準的解法
シンプルにしたい場合、まずこれが思いつかなきゃダメ
ここがスタート地点、場合によってはゴール

なんで糞なテクニックを使いたがるのか、そして教えたがるのか
中途半端に改良した結果糞で何がしたいのかわからない

768:デフォルトの名無しさん
16/10/08 18:50:39.29 eEcijZqv.net
ちなみに、int (*a)[640] っていう宣言が初心者には難しいっていうんなら
autoを使え
auto a = new int [480][640];
delete[] a;
何にも難しいことはない

769:デフォルトの名無しさん
16/10/08 20:12:00.66 c34JK7xB.net
>>75


770:3 あれを突っかかっといてってやっぱり被害妄想やん?



771:デフォルトの名無しさん
16/10/08 20:17:45.09 Cqh//nwv.net
正直な感想を言ってみたい
ID:c34JK7xB はよく恥ずかしげもなく出てこれたなw
しかしそれ以上に恥ずかしいのは>>751のレス
一文字一文字噛みしめるように恥ずかしい
テレ隠しでオタオタしちゃってるのが染み出てて恥ずかしい

772:デフォルトの名無しさん
16/10/08 20:21:59.42 c34JK7xB.net
対案無しなら誰でもどうとでも言えるぞ

773:デフォルトの名無しさん
16/10/08 20:26:04.37 MCoYyYao.net
inline関数で配列宣言をJava風に記述出来るように、することは出来ますか?
例:int[3] a;など
なんか変か。

774:デフォルトの名無しさん
16/10/08 20:28:06.20 5VQX36u5.net
>>743でいいだろなんで意味も無く生ポインタ使うんだ
初期化も解放も不要
代入演算子でコピーもできるしムーブセマンティクスも効くから戻り値に取ってもコピーコストがかからない

775:デフォルトの名無しさん
16/10/08 20:41:49.95 XnkulnEl.net
typedef int array_t[640][480]; //型の宣言
array_t a; //変数宣言
a[1][2] = 3; //使用

776:757
16/10/08 21:23:59.81 MCoYyYao.net
>>760
ありがたいんですが、タイプデフの記述の所の意味がよくわかりませんでした…。

777:デフォルトの名無しさん
16/10/08 21:38:47.98 XnkulnEl.net
>>761
ああごめん、734向けに書いたんだけど、同じだよ。
int型の配列自体を型として、必要なスコープで宣言するわけ。
あとは普通の変数と同様に使える。
>>758なら、
typedef int MyArray_t[3]; //型宣言(スコープ)
MyArray_t a; //変数宣言のみ
MyArray_t a = {0,1,2}; //変数宣言と初期化
MyArray_t b[10]; //配列型の配列
void hoge(MyArray_t *a) //ポインタ渡し
{
 (*a)[0] = 3; //デリファレンスして使用
}
などなど

778:デフォルトの名無しさん
16/10/08 21:40:59.84 XnkulnEl.net
6行目(スコープ)は無視してw
大抵、ヘッダでtypedefしてグローバルスコープで使う事が多いかな
ファイルスコープでもローカルでもいいよ

779:デフォルトの名無しさん
16/10/08 21:47:38.72 h4PrAZ2Y.net
何だかstd::arrayを再発名してるようなコードだな
とは言え初心者にも使えて例外安全なコードが今ひとつ思い浮かばなかった
URLリンク(ideone.com)

780:デフォルトの名無しさん
16/10/09 00:45:44.65 JlGswBM7.net
>>743
それが楽だよな。
Cならともかく、今のC++で2次元配列でnew/delete処理を必死にするってなんかなって感じだよな

781:760
16/10/09 00:49:46.77 CesbDVy8.net
>>762-763
あ、そうでしたか。
いずれにしてもありがとうございました。

782:デフォルトの名無しさん
16/10/09 01:24:05.62 g5Vm/sHI.net
縦横のデータでも普通は一次元でやるわなぁ

783:デフォルトの名無しさん
16/10/09 02:48:02.25 6J6aWDOQ.net
ポインタをわかりやすく説明してくれまいか

784:デフォルトの名無しさん
16/10/09 02:55:46.68 D5DA+Fn6.net
「メモリ空間上の位置を示す値(ポインタ値/アドレス値)とそれ用の変数(ポインタ変数)」

この概念はわかるだろうから、あとは使えば使い方がわかる
使わないと使い方はわからない

785:デフォルトの名無しさん
16/10/09 03:04:49.63 CesbDVy8.net
>>768
アドレスを格納する変数です。
int a;
と定義するとaには整数を代入できるわけですが、この整数の代わりに、変数などに割り当てられているアドレス番地を代入できる変数です。
*を使って、
int *p;

int* pt; // C++のみ
などと記述できます。

786:デフォルトの名無しさん
16/10/09 03:09:56.06 kQ8uTekw.net
>>770
その「C++のみ」ってのは意味あんの?

787:デフォルトの名無しさん
16/10/09 03:18:09.67 PDnvlXCF.net
cでのファイルの読み書きとかそういう動的な処理以外
ガリガリとポインタ使う機会ってあるの?

788:デフォルトの名無しさん
16/10/09 03:18:41.04 PDnvlXCF.net
追記
オブジェクトの参照とかもつかうよね

789:デフォルトの名無しさん
16/10/09 03:22:40.73 b4dakfPd.net
追記厨うざい

790:デフォルトの名無しさん
16/10/09 03:25:52.97 KWlu0vko.net
>>772
動的ポリモーフィズム

791:デフォルトの名無しさん
16/10/09 03:46:11.99 D5DA+Fn6.net
文字列・画像・音声の編集では目的の値にポインタでアクセスするし
構造体およびその不完全型/不透過型はポインタでやりとりするし
qsortのコールバックの引数はvoid**だし

792:デフォルトの名無しさん
16/10/09 07:19:46.25 tK5O0Gp1.net
>qsortのコールバックの引数はvoid**だし
いつから775はそう思いこんでいた

793:デフォルトの名無しさん
16/10/09 07:28:20.26 D5DA+Fn6.net
あれ違ったっけと思って見てみたら引数はconst void *だなw
void **にキャストするのと勘違いしてたわ

794:デフォルトの名無しさん
16/10/09 08:49:16.06 X7nfytgR.net
>>747>>751

795:デフォルトの名無しさん
16/10/09 09:23:27.23 X7nfytgR.net
すみません、間違えて変なアンカーを打ってしまいました
>>747>>751
画像処理のラベリングというのをやりたかったんですが
C言語もC++も初心者なので四苦八苦しながらやっているところです

796:デフォルトの名無しさん
16/10/09 09:49:01.74 X7nfytgR.net
もうひとつ質問したいのですが
a[0]=240
a[1]=10004
a[2]=1023
a[3]=5409
みたいな配列があったとして
配列aをsortすると、中身だけがsortされて
a[0]=10004
a[1]=5409
a[2]=1023
a[3]=240
ってなると思うのですが、

a[0]=240
a[1]=10004
a[2]=1023
a[3]=5409
↓この配列に対して
b[0]=1
b[1]=3
b[2]=2
b[3]=0
というように、配列の中身の大小に対応した配列の番号を取り出したいような時
どういった処理をするのがベストですか?
2つの対応した数字を、片方だけの値でsortして並び替えられれば1次元配列じゃなくても
vectorでも2次元配列でも手段は問わないのですが。。

797:デフォルトの名無しさん
16/10/09 10:32:44.96 1crSfiNI.net
vector<pair<int, int>> a;

798:デフォルトの名無しさん
16/10/09 10:56:03.81 X7nfytgR.net
>>782
ありがとうございます!

799:デフォルトの名無しさん
16/10/09 11:17:33.47 +yqYMy9C.net
>>781
C/C++ ちゃんぽんだが Visual Studio 2015 で確認

#include <stdio.h>
#include <stdlib.h>

int a[] = { 240, 10004, 1023, 5409 };

static int compare(const void* x, const void* y) {
int xa = a[*(size_t*)x];
int ya = a[*(size_t*)y];
if (xa < ya) {
return 1;
} else if (ya < xa) {
return -1;
} else {
return 0;
}
}

int main()
{
const auto N = sizeof a / sizeof a[0];
size_t b[N];
for(size_t i = 0; i < N; i++){
b[i] = i;
}
qsort(b, N, sizeof b[0], compare);
for (size_t i = 0; i < N; i++) {
printf(

800:デフォルトの名無しさん
16/10/09 11:19:17.64 +yqYMy9C.net
あっ、" 以降切れるのか...
まあ、結果を表示してるだけだからわかるかな

801:デフォルトの名無しさん
16/10/09 11:25:57.79 PLoscqr1.net
切れるってマジか
test " test " test

802:デフォルトの名無しさん
16/10/09 11:26:16.66 PLoscqr1.net
きれへんがなー

803:デフォルトの名無しさん
16/10/09 11:39:46.96 M9nJsIdd.net
前に同じような処理が必要になった時は、添字の配列を用意してそれを元の値で比較・ソートした

class cmp {
public:
int *p;
cmp(int *a) : p(a) {}
bool operator()(int x, int y) { return p[x] > p[y]; }
};

int a[4] = {240, 10004, 1024, 5409};
int b[4] = {0, 1, 2, 3};
sort(b, b + 4, cmp(a));

ラムダ使えるなら関数オブジェクト用意しなくてもいい
sort(b, b + 4, [&](int x, int y){ return a[x] > a[y]; });

804:デフォルトの名無しさん
16/10/09 12:26:16.01 X7nfytgR.net
>>784-788
皆さん色々ありがとうございます
少しずつ調べながら試していこうと思います

805:デフォルトの名無しさん
16/10/09 14:08:02.04 +yqYMy9C.net
>>786-787
なんか条件よくわからんが切れる時がある

806:デフォルトの名無しさん
16/10/09 16:57:10.40 kyAYUOur.net
#include <iostream>
#include <memory>

int main()
{
constexpr int COL = 640, ROW = 480;
std::unique_ptr<int[][ROW]> a(new int[COL][ROW]);

a[1][0] = 9999;

std::cout << a[1][0] << std::endl;
}

こんなのとか

807:デフォルトの名無しさん
16/10/09 23:50:28.31 Ldbc2NOo.net
モンスタークレーマー「newなんて!ウチの子が真似したらどうするんですか!!」

808:デフォルトの名無しさん
16/10/10 01:09:26.35 Bk4kbXB6.net
禿にクレーム?

809:デフォルトの名無しさん
16/10/10 04:43:03.74 6bVjh2uR.net
>>784-787
2chのバグだろ

書き込み確認画面が出る際、" を使うと、そこで文字列の終了とみなされる。
" を、\" とエスケープすれば、どうだろう?

810:デフォルトの名無しさん
16/10/10 05:12:42.07 9uF4C/7F.net
#include <iostream>
#include <algorithm>
#include <vector>
#include <utility>

int main()
{
int a[] = { 244, 10004, 1023, 5409 };
int b[] = { 0, 1, 2, 3 };
constexpr int N = sizeof(a) / sizeof(a[0]);
typedef std::pair<int, int> PII;
std::vector<PII> vpii;

for (int i = 0; i < N; i++)
vpii.emplace_back(std::make_pair(a[i], b[i]));

std::sort(b, b + N, [&](int x, int y){ return a[x] > a[y]; });
for (auto i : b)
std::cout << i << std::endl;

std::sort(std::begin(vpii), std::end(vpii), [](PII& x, PII& y){ return x.first > y.first; });
for (auto i : vpii)
std::cout << i.second << std::endl;
}

811:デフォルトの名無しさん
16/10/11 16:20:43.32 IeH7nGOE.net
初歩的な質問かもしれませんが調べても見つけられなかったので教えてください

以前までスタック領域はL3キャッシュ等に確保されているから高速で容量が小さく(1MB程度)低級でOSに支配されていると考えていたのですが
同じく初心者の友人がスタックオーバーフローした!スタックサイズ変える!256MB!などと言って解決しており気が狂いそうになりました
ヒープ領域を使うべき、とかオーバーフローについての解決策は理解しているつもりですので、
スタック領域がハードウェア的に一体どこに確保されているのかご教示いただけませんか?

RAMが番地によってアクセス速度が変わることなんてありませんよね?

812:デフォルトの名無しさん
16/10/11 16:47:29.16 Tk+cPNjp.net
普通にメインメモリの領域に取られる
大雑把にいうとコード、データ、スタックを置く三つの領域に分けて管理されてる

813:デフォルトの名無しさん
16/10/11 17:04:53.76 IeH7nGOE.net
となるとなんでスタック領域のアクセスは他のデータ領域などに比べて速いんでしょう?

814:デフォルトの名無しさん
16/10/11 17:10:12.67 Xd5sJMpc.net
確保は速いけど、アクセスは特別には速くないよキャッシュに乗る可能性が高いということはあるけど
それは色んな条件に左右される

815:デフォルトの名無しさん
16/10/11 17:14:29.27 5pUb4ulq.net
プログラムカウンタ当たっているRAM上のアドレス: コード
スタックレジスタに当たっているRAM上のアドレス: スタック
他: データ

816:デフォルトの名無しさん
16/10/11 17:31:30.02 IeH7nGOE.net
なるほど…
容量が小さいことでデータの局所性が高まりキャッシュの使用効率が上がった結果速まることがあるだけで
ハード的には同じRAMで速度は変わらないんですね
皆様のお陰で少し冷静になれました、ありがとうございました!

817:デフォルトの名無しさん
16/10/11 18:39:21.42 n/wutvzL.net
C言語マスターしたら暗記アプリって簡単に作れますか?

818:デフォルトの名無しさん
16/10/11 18:41:25.35 Tk+cPNjp.net
無理だね

819:デフォルトの名無しさん
16/10/11 18:45:21.60 sSjTKHHD.net
暗記アプリってなんですか?

820:デフォルトの名無しさん
16/10/11 20:18:01.85 nwrHMQee.net



821:アプリ」って単語の時点で想像するようなものは無理な気がする



822:デフォルトの名無しさん
16/10/11 20:20:47.82 DTQ2U52n.net
一時記憶力向上ゲームみたいなもんかと

823:デフォルトの名無しさん
16/10/11 20:23:57.73 hGW6J+ki.net
リマインダーとかではなく暗記ってところがわからない

824:デフォルトの名無しさん
16/10/11 20:54:38.77 rvdgZgux.net
ankiみたいなのだろ?

825:デフォルトの名無しさん
16/10/11 21:12:59.40 DIlrAbrX.net
>>803
おいおい、まぁ、前提条件のC言語マスターが激しく大変だろからな

暗記アプリってpiを100万桁覚えるとかするためのアプリだろ

826:デフォルトの名無しさん
16/10/12 01:11:33.10 KqiGITqk.net
暗器アプリだったら何か物騒な感じだよね

827:デフォルトの名無しさん
16/10/12 01:22:12.02 qs09U+gu.net
例えばクイズ形式でどんどん覚えていくようなソフトをCで開発したいってことでしょ?
出来るんじゃないの?(CUIなら)

828:デフォルトの名無しさん
16/10/12 09:18:15.90 0qBDR/o0.net
C言語マスターしてんだったら必要になり次第ドキュメント読みつつGUIプログラム組むのなんて簡単だろ?
他に専門的な知識が要るものでもないし。
出来ないならそれはC言語をマスターしてないだけだ。

829:デフォルトの名無しさん
16/10/12 11:04:24.26 ygteO6C5.net
その暗記アプリ、ゲームエンジン使えばうまく行きそうな気はする

830:デフォルトの名無しさん
16/10/12 11:21:12.98 UeSSOb4c.net
その程度ならマイクラで作れるだろ

831:デフォルトの名無しさん
16/10/12 11:56:10.32 Bk/iMyy8.net
質問者そっちのけで勝手な仕様作り上げてまで回答したいの?

832:デフォルトの名無しさん
16/10/12 12:56:24.44 Mk78s3RE.net
CUIならC言語持ち出すまでもないだろう
暗記アプリってのがどんなものか判らないけど多分Perlがお似合い

833:デフォルトの名無しさん
16/10/12 19:15:05.77 oek5pIEh.net
何を暗記するのに使いたいですか?

834:デフォルトの名無しさん
16/10/12 22:53:32.28 nedjmfNo.net
言語マスターなんて日本語を読み書きできるのと
ラノベを出筆するくらいに方向性の違う能力。
若しくはオナニーマスターだけどDTみたいな。

835:デフォルトの名無しさん
16/10/14 00:22:29.38 SrS85Be2.net
例えがちょっとだけお下品。

836:デフォルトの名無しさん
16/10/14 06:57:45.98 5cxOTwUL.net
これがちょっとだけお下品なら、普通のお下品や
すごくお下品な例えを見てみたくなるな。

『はじめてのC』もちょっと狙った感じの書名だったね。

837:デフォルトの名無しさん
16/10/16 22:01:00.01 E0PWP2JD.net
はじめてのCを良書だと思っていた時期があった

838:デフォルトの名無しさん
16/10/16 22:03:48.41 E0PWP2JD.net
あと「エキスパートCプログラミング 知られざるCの深層」も
規格を熟読した今となってはゴミ同然

839:デフォルトの名無しさん
16/10/17 05:16:11.27 WQbb/OBd.net
つまり、毎晩寝る前に規格書を睡眠薬代わりに読むのが最強というわけか

840:デフォルトの名無しさん
16/10/17 08:20:50.29 N3gfqfmr.net
ハゲの本を読む度に強烈な睡魔似襲われる
催眠効果と呼ぶことにする

841:デフォルトの名無しさん
16/10/17 20:09:15.87 R5CCSZPr.net
ロベールの本を読むとなんか得体の知れないドーパミンが出る。
これをロベール効果と呼ぶ。

842:デフォルトの名無しさん
16/10/17 21:13:06.88 zv6p4a9y.net
新作のC++入門書が出ると思わず買ってしまう。
これをハゲビジネスと呼ぶ。

843:デフォルトの名無しさん
16/10/18 02:01:21.65 ZR16vIyY.net
最近の新作C++入門書ってなにかある?

844:デフォルトの名無しさん
16/10/18 02:50:22.82 oHxKXjdy.net
C++プライマー 第5版

845:デフォルトの名無しさん
16/10/18 10:19:50.74 UbcBgpHB.net
プライマーしょぼくなったよね。
見た目が。

846:デフォルトの名無しさん
16/10/18 10:30:46.41 ESUrlaKZ.net
字が小さくて地味みたいな

847:デフォルトの名無しさん
16/10/18 18:38:57.10 M5JRNYhH.net
いつまでも入門書買い漁るのは飽きた。やはり、本家本と仕様書で勉強するのが最強への道ではないか

848:デフォルトの名無しさん
16/10/18 18:46:35.82 0a1WOMu5.net
モアエヘクティブC++とかですか

849:デフォルトの名無しさん
16/10/18 19:17:19.43 Pul0IDVM.net
>>831
ところで具体的にどんな本読んでみました?

850:デフォルトの名無しさん
16/10/18 20:56:09.64 M5JRNYhH.net
>>833
独習C++
詳説C++ (C MAGAZINE)
Effective C++
C++テンプレートテクニック
C++のエッセンス
独習デザインパターンC++
Effective Modern C++
プログラミング言語C++ ← イマココ

851:デフォルトの名無しさん
16/10/18 22:14:55.19 G5vZttej.net
一冊も読んでないわ

852:デフォルトの名無しさん
16/10/19 00:39:17.68 BhXSEXF3.net
C++ Coding Standards

853:832
16/10/19 01:35:35.38 5sVAVD6H.net
>>834
凄い読書量ですね。

俺は明快入門C++(ビギナー編)を読んだ後、ロベールのC++入門講座って本を読んでますが、今いちしっくりきてません…。

854:デフォルトの名無しさん
16/10/19 03:26:21.55 OiCCOICb.net
C++標準委員会、ドワンゴの江添の本は?
「C++11/14コア言語」

セガの平山尚のセガ本などの、ゲームエンジン系は?

855:デフォルトの名無しさん
16/10/19 13:09:31.92 SfY3J7W6.net
ドワンゴ江添

856:デフォルトの名無しさん
16/10/19 13:57:20.46 HZUn6OTC.net
ドワンゴの人だったのか

857:デフォルトの名無しさん
16/10/19 18:04:14.99 vSZFyArd.net
ドワンゴ江添←芸人っぽい響き

858:デフォルトの名無しさん
16/10/20 23:25:13.31 0qBh12A6.net
正直、プログラム言語の本なんてほとんどがいらんやつだろ・・。



859:デフォルトの名無しさん
16/10/21 00:50:23.10 wiPWCJ8Q.net
>>842
そうでもないですよ。
役に立ってます。

ネットで覚える派ですか?

860:デフォルトの名無しさん
16/10/21 01:32:31.95 R+XAmQY/.net
電子版は便利だよね。

861:デフォルトの名無しさん
16/10/21 01:57:59.85 N1TnnfYV.net
レベル別に良書と言われているものだけ読んでいればいい
入門書を何冊も読んでも意味ない

862:デフォルトの名無しさん
16/10/21 08:55:46.49 usEI0+le.net
趣味レベルなら納期関係無いしネットで十分

863:デフォルトの名無しさん
16/10/21 09:49:13.75 qlDwM755.net
>>842
最初の3日間くらいは本ばっかり見るわ

付箋張りまくり線引きまくりで ぐっちゃぐちゃに読み倒して
適当にプログラム何本か書き上げてコツをつかんだら

あとはもう本は読まないでネット情報だけで生きていく感じ

864:デフォルトの名無しさん
16/10/21 21:13:36.83 N1TnnfYV.net
基礎的な本はいらない特にメジャーな言語
しかし応用になってくるとネットの情報は信頼性が下がっていくし断片的になるからそこから読み取るのは至難の業
というか時間の無駄

865:デフォルトの名無しさん
16/10/22 00:07:56.00 foifh8JM.net
本の内容も信用できなくなってくよな
結局公式のリファレンスが一番だと思ったらそこにも間違いが

866:デフォルトの名無しさん
16/10/22 00:25:50.24 fkn1DI+D.net
そこまで詳しければもう人に教わるものは無いな

867:デフォルトの名無しさん
16/10/22 01:49:31.77 7tMIvN9j.net
すごー

868:デフォルトの名無しさん
16/10/22 07:03:08.71 rNB1+Tne.net
(Javaの)参照だと分かりやすいのに、ポインタだと途端に分かりにくくなるんだよなぁ。何でだろ。

869:デフォルトの名無しさん
16/10/22 07:09:39.54 M5BjZ2VU.net
ポインタ操作で指し先を積極的にかえることができるからなんじゃない


870:?



871:デフォルトの名無しさん
16/10/22 12:18:12.63 w2a8SH0J.net
ポインタは入れ物として、参照はオブジェクトとして振る舞うからじゃない?
でも、変数代入と変数束縛は前者のほうがわかりやすいのはなんでだろね

872:デフォルトの名無しさん
16/10/22 19:14:18.29 rNB1+Tne.net
仮想関数とオーバーライドのところは、C++もJavaも(ポインタか参照かという違いはあれど)ほとんど同じことをやっているはずなのに、なぜかC++のが難しく感じる。
本のせいか?。

873:デフォルトの名無しさん
16/10/22 21:47:55.00 klBj43YX.net
後発のjavaの方がバカ相手にわかるように書かないといけないので結果的に分かりやすい

874:デフォルトの名無しさん
16/10/23 00:16:48.35 y2GXnpPx.net
c++は仮想関数とそうでない関数があるがjavaは全て仮想関数だから?
もしくはc++はポインタと値と参照があるがjavaはほぼ全て参照型だから?

c++のが選択肢が多い分、使い分ける必要があってややこしい

875:デフォルトの名無しさん
16/10/23 00:28:54.41 lzTmPVXn.net
java使わないから分かんないんだけど全部仮装関数って良いのかそれ
場合によっては凄い遅くなりそうだが

876:デフォルトの名無しさん
16/10/23 00:38:37.16 KeRzb/QL.net
速度を気にしてjavaを使う奴なんかいない

877:デフォルトの名無しさん
16/10/23 01:15:33.32 3pC6m4Rl.net
Javaはインタプリタなので実行時にオーバーライドされているかどうか区別してコンパイルする。
だから結局のところプログラマがソースに明示するかどうかの違いにしかならないし、そのせいで遅くはならない。

878:デフォルトの名無しさん
16/10/23 02:22:59.46 l2122epV.net
Javaは昔からfinalがあるからね

879:デフォルトの名無しさん
16/10/23 08:39:16.96 7LVxYGoD.net
Javaは遅くはならないというより、C++でいうところの遅いパターンしかない

880:デフォルトの名無しさん
16/10/23 09:04:44.43 KxGiTi6w.net
それでもjitでc++より早い(cよりとは言ってない)

881:デフォルトの名無しさん
16/10/23 17:38:43.11 l/vyVrq0.net
わざとか知らずかは知らないが、わざわざ遅くなるように書いたc++より速くなることもまれにあると言うだけ。

そもそもランタイム自体c++でかかれているんだぜ、あれ。

882:デフォルトの名無しさん
16/10/23 17:44:37.22 kTfbu3LJ.net
じっとコンパイルする時間含めてもC++より速いの?

883:デフォルトの名無しさん
16/10/23 18:37:31.69 vw/ISU92.net
Javaならc++より(話が)早い

884:デフォルトの名無しさん
16/10/23 20:33:45.91 kTfbu3LJ.net
まあアルゴリズム力が勝負の9割を決めるけどね
アルゴリズムの素養のないC++erコードはアルゴリズム巧者によるPythonコードにすらボロ負けする

885:デフォルトの名無しさん
16/10/24 21:13:37.26 UaUSiXCD.net
アルゴリズム何それうまいの?

886:デフォルトの名無しさん
16/10/24 22:24:54.92 szSWSHdO.net
おいしいよ

887:デフォルトの名無しさん
16/10/25 01:44:44.93 +TdoxN9O.net
   ▲  夫 △
  (  皿 )  ごりーん
  (        )      
 /│  国  │\         ごりーん
<  \____/  >
    ┃   ┃
    =   =
アルゴリズムだよ
望みの機能を現実的な時間とメモリ使用量で動いてくれるようにするすごいやつだよ

888:デフォルトの名無しさん
16/10/25 18:02:12.12 /LQv2l/i.net
C++で,
int a[4]みたいな配列があった時に
a[2]の数字だけを削除するようなことってどうやったらいいですか

a[0]=89
a[1]=11100
a[2]=555
a[3]=22

これを↓
a[0]=89
a[1]=11100
a[3]=22
a[4]=0

みたいにしたいです。
自分で関数作らないとダメですか?
eraseとかで出来たりしますか?

889:デフォルトの名無しさん
16/10/25 18:02:44.87 /LQv2l/i.net
間違えました

a[0]=89
a[1]=11100
a[2]=555
a[3]=22

これを↓
a[0]=89
a[1]=11100
a[2]=22
a[3]=0

みたいにしたいです

890:デフォルトの名無しさん
16/10/25 18:10:44.21 04xA9lfs.net
>>872
memcpy

891:デフォルトの名無しさん
16/10/25 18:14:01.64 XCpKRbQF.net
>>873
重なるところを操作するのに memcpy はよろしくない
memmove で

892:デフォルトの名無しさん
16/10/25 20:04:15.17 /LQv2l/i.net
>>874
ありがとうございます
出来ました!

893:デフォルトの名無しさん
16/10/25 20:55:06.17 +zdMSPeh.net
STL使えば?

894:デフォルトの名無しさん
16/10/25 21:37:31.58 v6pSXgxe.net
>>872
まんまremoveという関数が。

895:デフォルトの名無しさん
16/10/25 21:53:36.38 ysOf7Gsy.net
memmove の前にlistとかvectorが頭に浮かぶのはC++病なのかもね。

896:デフォルトの名無しさん
16/10/25 21:54:15.62 S/qKFkwP.net
removeならトリビアルでない型が来ても安心だな

897:デフォルトの名無しさん
16/10/25 22:30:19.95 20LBBpeo.net
vectorしか思いつかない

vector<int> a{ 89,11100,555,22,0 };
a.erase(a.begin() + 2);

898:デフォルトの名無しさん
16/10/25 22:32:20.26 dPNm/fb0.net
やっぱプログラマって底辺なの・・・・。
あほ上司のしりぬぐいをしたつもりなんだが、できて当たり前みたいな雰囲気がチームにある。

899:デフォルトの名無しさん
16/10/25 22:38:20.05 oZjfYDL1.net
スレタイも読めないやつは底辺やな

900:デフォルトの名無しさん
16/10/25 22:44:00.57 wk/8Ajgh.net
ローカルルール・スレタイ・スレの流れの3つが読めない人がプログラマやっているのか

901:デフォルトの名無しさん
16/10/25 23:09:12.29 g6Mxg6+u.net
>>877
それファイル削除だから

902:デフォルトの名無しさん
16/10/25 23:21:46.41 rsJoV7Wk.net
>>884
C++の話をしてるんだからちゃんとC++を勉強してからレスした方がいいよ

URLリンク(www.cplusplus.com)

903:デフォルトの名無しさん
16/10/25 23:37:02.85 +zdMSPeh.net
removeだと指定要素全て消されるよ

904:デフォルトの名無しさん
16/10/26 00:00:44.69 cikaMqhl.net
remove関数はre-moveでdeletet(消す)とは違うよな
消すならdelete()、でも、なんでこれないんだ?

905:デフォルトの名無しさん
16/10/26 00:04:13.70 AmMa052m.net
>>887
remove[他動詞]
1 〈置いてある物を〉(…から)取り去る,取り外す,片づける;〈人を〉(…から)連れ去る;((再帰的)) (…から)立ち去る((from ...))

906:デフォルトの名無しさん
16/10/26 00:16:29.12 cikaMqhl.net
あと、erase()、deleteってのもC++にはあるけど
英語のerase と delete ではなんか意味が違うから
erase()、deleteになったんだろな

907:デフォルトの名無しさん
16/10/26 01:11:59.07 m0O+CJ+H.net
removeはもとから撤去するとか取り除くって意味合いで、移動の意味のほうが稀

deleteとeraseは単に予約語だから代えてるだけじゃないかな
pythonは言語機能で配列の要素削除があるけど、使うのはdelだよ

908:デフォルトの名無しさん
16/10/26 01:27:57.33 cikaMqhl.net
rempveとdelete
URLリンク(www.sonydna.com)

909:デフォルトの名無しさん
16/10/26 07:06:04.24 RJpSlGaC.net
int a[4]; って書いてあるのに remove ガーってアホとしか思えん

910:デフォルトの名無しさん
16/10/26 07:16:51.16 k//iL6vN.net
配列の最後に0が詰まるんだからdeleteではダメだな

911:デフォルトの名無しさん
16/10/26 07:18:28.33 8DxCGNM5.net
アスペなんだろ

912:デフォルトの名無しさん
16/10/26 07:41:08.85 RDpdn04z.net
>>892
どういうこと?
まさか配列に使えないと思ってるわけじゃないよね?

913:デフォルトの名無しさん
16/10/26 08:00:54.43 Qx/HEVu1.net
>>895
そんな、いじめなくても…

914:デフォルトの名無しさん
16/10/26 15:18:48.95 E8CItb2B.net
>>871-872 からは int a[4]; で a[2]を消して詰めるという以上の条件は読み取れない
無駄に複雑にするのは知識をひけらかしたいだけの自己満足でしかない
極端な話、 a[2]=a[3]; a[3]=0; が分かり易さと速度に於いて最適だ
もちろん別の条件があるなら別の最適な方法があるかもしれない

915:デフォルトの名無しさん
16/10/26 15:21:48.76 0DRYzuZk.net
moveでいいと思います

916:デフォルトの名無しさん
16/10/26 15:44:46.79 pULr6tRx.net
ひけらかしたいだけなら別にいいだろ
この方法じゃなきゃだめだ、ってやられたら邪魔だが
初心者の場合は質問が上手くできない場合もあるし、ROMっている人の参考になる場合もあるんだから

917:デフォルトの名無しさん
16/10/26 17:40:57.14 Qx/HEVu1.net
871の質問に対して『a[2]=a[3]; a[3]=0; が分かり易さと速度に於いて最適』だなんて
どんだけアスペこじらせてんのよ

918:デフォルトの名無しさん
16/10/26 18:44:18.81 2q4CwRuj.net
別の条件を明かにすることで最適解が変わってくる
という趣旨が分からないならお前がアスペ

919:デフォルトの名無しさん
16/10/26 19:06:50.11 DCJLb856.net
>>900
>>896

極端な話って前提は都合よくスルーなんだなw

920:デフォルトの名無しさん
16/10/26 19:42:44.58 cikaMqhl.net
>>871-872の回答して
俺的にはC++で、そして、eraseが出ているから、かっこよくSTLあたりを
使った回答を期待していたと思っていたが、memmoveで出来ましたで、えっって感じだったけどな
なんか回答としては、a[2]=a[3]; a[3]=0; で十分であったってことだよな。

921:デフォルトの名無しさん
16/10/27 16:04:26.63 dM08lZSa.net
(C++で)厚くない本でいい本ありますか?

922:デフォルトの名無しさん
16/10/27 19:02:24.09 y6LRba0P.net
C++は全部厚いよ。

関係ないけど実写版Sakiに江添っぽいメガネキャラがいるな。

923:片山博文MZ ◆T6xkBnTXz7B0
16/10/27 19:13:25.99 ABDKK6Bx.net
unordered_setやunordered_mapのbucket周りってどういう風に実装されているの?

924:片山博文MZ ◆T6xkBnTXz7B0
16/10/27 19:42:45.26 ABDKK6Bx.net
ライセンスの関係でソース見ちゃダメモードなんすよ。

925:デフォルトの名無しさん
16/10/27 21:38:26.84 Fc/cX5mQ.net
レス番飛んでるけど嵐来たの?

926:デフォルトの名無しさん
16/10/27 22:03:55.58 ABDKK6Bx.net
台風シーズンは過ぎた

927:デフォルトの名無しさん
16/10/27 22:07:24.25 ABDKK6Bx.net
ググったらアイドルグループって出た

928:903
16/10/28 01:59:06.60 wDKSwFbg.net
>>905
ありがとうございます。

じゃあCに関する記述はカットしてあって、C++をメインに解説してある本ってありますか?

929:デフォルトの名無しさん
16/10/28 06:22:57.87 odyikEcy.net
>>911
あるよ

930:デフォルトの名無しさん
16/10/28 11:40:48.11 CQ8iiwCh.net
>>905
実写版Saki なんてあるのかよ・・・ 国広の私服どうなんだよ・・・


とろろで、try catch で例外を受けたときに
例外が発生したソース名と行番号を表示したいんだけど
簡単にやるにはどうすればいいかな
自力でバックトレースしてごにょごにょするしかない?

931:デフォルトの名無しさん
16/10/28 12:06:22.96 37ytQ7vz.net
__FILE__と__LINE__じゃダメなん?

932:デフォルトの名無しさん
16/10/28 13:05:49.75 RWm1DZ2k.net
#define my_throw() throw my_exception(__FILE__, __LINE__)

933:デフォルトの名無しさん
16/10/28 13:22:53.47 CQ8iiwCh.net
>>914
catchの中の行番号になっちゃう
>>915
例外を自分で投げるときはそれでいいけど ほかの人が投げた例外は無理だよね

934:デフォルトの名無しさん
16/10/28 15:59:20.16 oa5x3DIH.net
stack traceの情報がダンプされてりゃ十分だろ
むしろわけわからん加工しないでほしい

935:910
16/10/28 16:00:33.51 wDKSwFbg.net
>>912
何ていう本ですか?

936:デフォルトの名無しさん
16/10/28 22:39:16.57 9n7Qn2lL.net
俺はメッセージボックスで"run!"って出して、
ここまで走ってるってのを確認してる

937:デフォルトの名無しさん
16/10/28 23:27:27.54 9iz4x+2p.net
>>916
他の人が投げることまで想定するならファイル名や行番号情報がないことも想定した方がいいと思うが...

938:デフォルトの名無しさん
16/10/28 23:40:09.94 JUHhVRmD.net
>>920
で、そう想定したならどうすれば良いんだ?

939:デフォルトの名無しさん
16/10/28 23:46:36.57 9iz4x+2p.net
>>921
バカなの?
無い袖は振れないって知ってる?

940:デフォルトの名無しさん
16/10/28 23:53:32.99 JUHhVRmD.net
>>922
そういうことか。
なんか俺の上司が>>921みないな感じのこというんだよな
で、具体的な案なるんですかって出ると
分からん・知らんと

941:デフォルトの名無しさん
16/10/29 06:59:48.04 dIZqWzLv.net
例えるなら
「50円しか持ってないけどカツ丼食いたい。どうすれば」
「バカなの。金無いなら諦めろ」
「そういうことか。なんか俺の上司が俺みたいな感じのこというんだよな。で、具体的な策なんですか?って出ると分からん・知らんと」

942:デフォルトの名無しさん
16/10/29 13:07:19.35 1ysZjR2u.net
>>920
そのときはあきらめるけど、そうじゃないときはなるべくログを出したい
backtrace() を使ったらなんか何とかなりそうな感じになってきた


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

279日前に更新/250 KB
担当:undef