C++相談室 part131 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
次スレを立てる時は本文の1行目に以下を追加して下さい
!extend:on:vvvvv:1000:512
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part130
http://mevius.2ch.net/test/read.cgi/tech/1490917669/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.100【環境依存OK】
http://echo.2ch.net/test/read.cgi/tech/1478440682/
■長いソースを貼るときはここへ。■
http://codepad.org/
https://ideone.com/
[C++ FAQ]
https://isocpp.org/wiki/faq/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)
-
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured >>595
ありがとうございます
保証するにはどうすればいいですか?
ググってstackoverflowとか見たんですが、できないという人もいたり
clear()を使えという人もいてよくわかりません 禿が言い出した<<と
おまいらが言い出す<<では
悪いが社会への影響度がまるで違う
大勢のPGが<<はI/Oだと素直に従うかどうかでだ
新しい言語に旧来の言語と似た記号が出てきたからって
同じ意味でなければならないという法はどこにもない ローテート命令が演算子化されてないのは何故なんだぜ? 自己解決しました
>>604
必要な場面がありまして printfをモダンにアレンジして新規格作ればいいのに。 >>605
それな
俺も時々欲しくなるんだけど
キャリーを含む/含まないとかCHAR_BITの違いとかで
移植性が確保しにくそうだよな
記号を何にするかなんて後から決めりゃいいことだ >>605
ローテートなんて頻繁に使うものじゃないから
ビットが立ってる数を数えるとか、
ビットが立ってる位置を調べるとか、
バイト単位の並び替えとか、
小数から整数へ四捨五入とか、
他にいくらでも足したいものはある 誰がこんなクソ言語つくったんだよ
作者はたぶんバチが当たって禿げてるはず だいたい最初にアスタリスクを乗算演算子にした奴は誰だよ。 operator:=とかoperator!?とか定義できるようにしてくれたら
お前らが度肝を抜くような使い方して見せるのに、残念でならない。 operator?:ならマジで提案してみそ
あわよくば大手柄だぞ >>613
コンパイルエラーになろうが、ソース書くだけなら現状でもできるだろうから、度肝を抜いてくださいな。 >>618
BASICのように=の意味が文脈で変わるべきだと? いやっすいやっす!代入に2タイプも使うのいやっす! >>623
勝手に変えたらどう?
数学はコンパイル不要だから、最初に定義さえすればお前の使いたい記号を好きなだけ使えるよ 自民党の恐怖の言論弾圧が迫る!
売国安倍は憲法改正で国民主権と基本的人権
を奪うつもりだ。 ← 民主主義の崩壊
http://www.data-max.co.jp/280113_ymh_02/
↑ マスコミは 9条しか報道しないが 自民案
の真の恐さは21条など言論の自由を奪うこと
自民案が通ると 政府批判しただけで逮捕されるぞ!
https://www.youtube.com/watch?v=h9x2n5CKhn8
上のビデオで 自民党は 日本人に基本的人権
は必要ないと 異常なことを平気で言う。
http://xn--nyqy26a13k.jp/archives/31687
↑ 都民ファーストも安倍と同じく 憲法改正で 人権
無視の大日本帝国憲法に戻すつもりだから
絶対に投票してはだめだ。 民主主義が崩壊する
http://blog.goo.ne.jp/ngc2497/e/8899f65988fe0f35496934dc972e2489
↑ ネトウヨ= 安倍サポーター工作員はネットで国民を騙す。
https://dot.asahi.com/aera/2016071100108.html?page=3
http://blog.goo.ne.jp/kimito39/e/c0dd73d58121b6446cf4165c96ebb674
↑ 安倍自民を操るカルト右翼「日本会議」は国民主権否定。
国民投票や選挙では自民党、維新、小池新党に絶対に入れるな。 2003年8月の第1回から2007年3月の第6回までいずれも中国北京で計9次の会合が行なわれた
話し合いで解決しなかった
原爆、弾道ミサイルの開発にカネ、時間を与えてしまった
軍事力でつぶすしかないのに、まだこんなこといってる
,,-―--、
|:::::::::::::;;;ノ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
|::::::::::( 」 < 対話で解決しよう
ノノノ ヽ_l \______________
,,-┴―┴- 、 ∩_
/,|┌-[]─┐| \ ( ノ
/ ヽ| | バ | '、/\ / /
/ `./| | カ | |\ /
\ ヽ| lゝ | | \__/
\ |  ̄ ̄ ̄ |
⊂|______|
|l_l i l_l |
| ┬ >>623
数学は、最初に定義さえすれば自由にしていいんだよ。 プログラミング勉強し始めた初心者ですが
手詰まりになったので質問させてください
ttp://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=ALDS1_3_C&lang=jp
この問題をやっていますが、以下のコードで「Time Limit Exceeded」となってしまいます
他の正解者のコード見てもやってることは同じな気がするのですが
なにがいけないのでしょうか?
C++14コード
ttp://codepad.org/2Yxb33Ab 追記です
Case#8までは「Accepted」でOKなんですが
Case#9が「Time Limit Exceeded」でした
Case#9は入力が2000000行もあるっぽいです
でも他の人とやってること自体は同じなんだから
このコードでできるはずと思い込んでしまって
何が悪いのかさっぱり検討つきません。。。 Listそのものがそんなに早くないとかかなぁ。
デリートはO(1)で終わるけど、ポインタの付け替えとかあるから、雑に遅いカモね。
最近のコンピュータだと配列の方が早かったりする。 もしかしたら、sstringしてるのが重いかもなぁ。
cinで取れるのに何でssteamしてるのかよくわからん。 >>630
>>632-639
ありがとうございます!
まさに>>635だったみたいです
1行ごとに入力を読み込みたいからsstream使ってたのですが
そのせいでwhileループで毎回sstreamとstringの変数を定義しているせいでした
cinとstringだけで入力を読み込むようにして
変数の定義をループの外にしたらようやく自分のコードで通りました
sstream使わなくてもstring変数の定義をループ内に書いたままにしてたら
ずっと通らなくてそれで何時間も四苦八苦してようやくすっきりしました
変数の定義って思いの外処理時間がかかるんだなあとしみじみ実感しました
わざわざコーディングまでしてくださってありがとうございました > 変数の定義って思いの外処理時間がかかるんだなあとしみじみ実感しました
ものによる
テキトーこくな >>642
> ものによる
string だろ
話の流れも読めないのか?
> テキトーこくな
実際にやってるだろうに何を言ってるんだよ
いちゃもんつけたいだけか? 変数の定義って処理なのか?
stringが遅いのはどの言語でも同じ。ヒープに確保してるから。
Cの特権は固定長ならスタックに文字配列を確保できること。 >>644
COBOLとかFORTRANヒープの概念があるとは デフォルトだとcinがstdioと同期取ってやたら遅かったりもする罠 コンストラクタがやけに重いクラスとかあるんだよ、標準でも。 C++のstream関連は全て糞
operator<<()の多重定義で自作クラスのフォーマット文字列化(stringizing)ができる、というのがちょっと嬉しかったけど
しょせんコードの見かけだけの話やし、実行速度は速いし改造もしにくい、
(printf()ならvprintf()を使って関数1個書けば良いところをstd::streambufの派生クラスを作る羽目に、、
行単位の排他とかの作り方を比べたらワカル
だいたい一般に1つのクラスに対して一般に
(1) 人間が読むためのフォーマット文字列化
(2) ストレージか何かへのシリアライズ
(3) ストレージか何かからのデシリアライズ
の3つの要求が生じるのに対してoperator<<()とoperator>>()の多重定義の2個では数が足りない
だったら上記3メソッドのインターフェースを全部Cのstdioベースで実装して済ませるわ;
とにかくC++の中にあってstreamはパフォーマンスよりもコードの見かけに拘ってみました感が異端 >>644
> 変数の定義って処理なのか?
コンストラクタって知ってるか?
> stringが遅いのはどの言語でも同じ。ヒープに確保してるから。
そもそもstring型はすべての言語にないし文字列型と言う意味ならFORTRAN77のように固定領域にとる言語もある
>>645
モダンなバージョンなら普通にあるでしょ
Fortran ⇒ Allocate 文
Cobol もオブジェクト指向になってるぐらいだからあると思う 相談室ということで
C++でディープラーニングのライブラリといったらTensor Flowとtiny dnn以外にあります? >>648
おちつけ。
> 実行速度は速いし改造もしにくい、
> だいたい一般に1つのクラスに対して一般に >>649
つまりインスタンス生成を「変数の定義」って言ってるのか。分りにくいな。 >>651
ありがとうございます
調べてまいります でけた!
ttp://judge.u-aizu.ac.jp/onlinejudge/review.jsp?rid=2524752#1
>>654
スマンorz >>648
モダンな言語の多くはprintfライクだし、javaも結局追加された。
printfライクのほうが効率的なことは経験的にわかってるのだからstreamにイマドキのformat関数を追加してくれればいいのに。 もっと50 msばかり速くすた、
ttp://judge.u-aizu.ac.jp/onlinejudge/review.jsp?rid=2526468#1 さらに1桁速くしたわふーん(0.65 sec → 0.06 sec)
ttp://judge.u-aizu.ac.jp/onlinejudge/review.jsp?rid=2526595#1
メモリ消費量も1/4未満になた、(34520 KB → 7432 KB) と思ったらイデオンGCCで動かねーでやんの。
https://ideone.com/oqpQ8i
VC2017では動く魔法のコード。 うほ。素晴らしい。
が、今度はVCで動かなくなった。
なんじゃそれ。 なんか、VCもGCCも半分くらいずつ間違えてる予感。
Setだけだとストレージがないからなんかバグの予感するし。
ストレージ持たせようとすると修飾が間違ってるって言われてる感じがする。
なんだこれ。 https://ideone.com/mqTzb8
これで手打ち。
よくわからん回り方されたなぁ。
とほほほ・・・。 VC++のバグ…ではなくいつもの標準非準拠の独自仕様の気はする
https://ideone.com/10vEzK >>673
およ、折衷案できそうか?
自分はVC動けばいいんだけど、
コード公開するときに動かないと間抜けっぽいから良対応しようと一応やってる。
visualデバッガが便利すぎてVCやめるの大変。 完全な解決策も規格の規定も知っているが、
再現する最小限のコードにしてから他人に見せる知能も持ち合わせていない者には時間の無駄 非修飾名の探索の問題だから発想を変えて明示的修飾で回避すればいいって話?
https://ideone.com/YTnOF2 templateの使い方を完全に勘違いしてやがる。 折衷案色々あるなぁ、感心する。
>>676
別に個人のコードでどこかに迷惑かけてるわけじゃないし、この程度のコードも読めない方が問題。
それに高慢なお方は最初から相手にしてない。マウントしてほしくてやってるんじゃないんだよ。 https://ideone.com/Ofcm9I
>>677を採用。これで解決しました。
明示の仕方がいまいちよくわかってなかった。
大変ありがとうございました。 auto で受けるとおかしげなことになるんちゃう? 馬鹿に触らせるなテンプレートって昔から言うしな。
フレームワークのテンプレートライブラリ提供する側だけが使っていいんだよ。 テンプレートはSTLやboostのまねをしていれば下手なことにはならないはずだが 何故そういうコードになっているかを理解せずに猿真似して意味があるかどうかはわからんけど
autoで受けるとおかしなことになるのは、キャストや代入で望む結果を得る方法(expression templateなど)全部そう
暗黙のキャストでなく関数呼び出しを強制すればautoでも大丈夫だけど > 馬鹿に触らせるなテンプレートって昔から言うしな。
自分が触りたくないのはわかったから >>682
コピコン切ってあるから大丈夫だと思う。あとは推論性能。 >>688
あ、なるほど、状況を勘違いしてた。
C++17 からは RVO が使える場合は常に RVO で処理する (従来は「してもよい」というオプショナルな動作) ことと、
そのときはコピー (ムーブ) コンストラクタが無くても良いというルールが念頭にあったのだけれど、
この場合は RVO は関係なかった。 スマソ >C++17 からは RVO が使える場合は常に RVO で処理する
ほうほう、それは本当ですか "clacla.h"
class Clacla {
void func1();
void func2();
void func3();
};
"clacla.cpp" //実装部
クラスClacla くくり { <-ここ
void func1() { printf( "1" ); }
void func2() { printf( "2" ); }
void func3() { printf( "3" ); }
};
のように関数の実装時にClacla::を省略する方法ってあるでしょうか? >>694
最適化が有効なら C++17 であろうがなかろうが clang なら RVO が効くはずだけど、 u.p の値は null になっちゃうな。
RVO がどうこうじゃなくて this の挙動に関するなんか変なルールが適用されてるとかかも? >>696
クラス内部にインライン関数を埋め込む方法しかない。 >>697
いやだからISO/IEC DIS 14882:2017 15.2/p3の規定により常にRVOが働くわけではないのではないかと申しているのですよ
ついでにu.pがnullptrになることはない ■ このスレッドは過去ログ倉庫に格納されています