X



C++相談室 part139
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん (ワッチョイ f65b-zn+7)
垢版 |
2018/10/06(土) 00:59:48.54ID:CdYUXXMG0
次スレを立てる時は本文の1行目に以下を追加して下さい。
!extend:on:vvvvv:1000:512

C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。

前スレ
C++相談室 part137 (正しくはpart138)
http://mevius.5ch.net/test/read.cgi/tech/1535353320/

このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.103【環境依存OK】
https://mevius.5ch.net/test/read.cgi/tech/1530384293/

■長いソースを貼るときはここへ。■
 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
0480デフォルトの名無しさん (アウウィフ FF27-OXRW)
垢版 |
2018/11/23(金) 13:44:09.05ID:e4GZHgy/F
生ポを上手に使えない人が使えばいい
自信があれば無くてもOK
0481はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 6f6f-zhOP)
垢版 |
2018/11/23(金) 13:53:48.42ID:o3+kYr4A0
可能なら生ポインタは避けるのが良い作法。
単純に、 delete を書くのめんどいから勝手にやってくれた方がよくね?
そりゃあ場合によっては生ポインタが必要な箇所もあるだろうけど、
スマートポインタは高度なライブラリ内だけでしか使われないってほど特殊なもんではない。

ポインタ型のデータメンバを持つクラスのコンストラクタで
発生した例外を function try block で捕捉して後始末をするよりは
スマートポインタを使った方が勝手に解放してくれて楽というのもある。

例外が絡むと本当にめんどいし、思考停止したい。
0483デフォルトの名無しさん (ブーイモ MMe7-XNyg)
垢版 |
2018/11/23(金) 14:36:29.45ID:D8he5SEKM
>>482
参照カウントがGCの実装アルゴリズムとして使われることがあるというだけで、スマポがGCと言ってるわけではないよ。

だいたいガイジンにとってガベージコレクションといえば↓コレなんだから、広範に収集しないスマポをGCと呼ぶのはすごい違和感。
https://money.usnews.com/careers/best-jobs/garbage-collector
0484はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 6f6f-zhOP)
垢版 |
2018/11/23(金) 14:46:07.98ID:o3+kYr4A0
スマポが GC かっていうのはちょくちょく話題になるね。

私自身は std::shared_ptr はガベジコレクタの一種だと考える派って話は前スレにも書いた。
https://mevius.5ch.net/test/read.cgi/tech/1535353320/303
考え方によるので定義を定める必要はないとも思ってるけどね。

>>473-474
C++ でデストラクタで不要なメモリにマークだけしておいて
実際の解放処理は後回し (とか別スレッドでやる) だとかいう手法もあるけれど、
あなたがたの基準ではこれは GC と言える?
0489デフォルトの名無しさん (ワッチョイ 53ea-zhOP)
垢版 |
2018/11/23(金) 21:53:31.89ID:qlpWVHw40
変な質問ですみません。
C++をBetterCとして使いたいのですが、C言語が分かる前提で、おすすめの書籍などないでしょうか?
コーディング規約ではないですが、その書籍に書いてあることまでは使っていいような形にしたいのですが。
0492デフォルトの名無しさん (ワッチョイ ff34-MrEw)
垢版 |
2018/11/24(土) 00:07:45.09ID:V6N696Kv0
ベターCなんぞというあまっちょろい考えのヤツはC++道破門だ
そんなあまっちょろい考えだからJAVA上がりのようなデストラクタもろくに使いこなせない小わっぱだらけになるのじゃ
0493はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 6f6f-zhOP)
垢版 |
2018/11/24(土) 01:07:38.96ID:yk09TxVj0
C++ を Better C として使ってもよいというのは設計者自身も言ってる。

だけど、あくまでも、 C をわかっている人が完全には C++ を理解できなくとも
わかる範囲で C++ を実務をに使いながら C++ への理解を深めていける (より高度な C++ 使いになることを目指す)
という前提付きだ。

C から C++ への段階的な以降がスムーズに出来るという話であって、
>>489 のように C++ の固定されたサブセットを Better C として使うのはちょっと違う。

強いて言えば Embedded C++ とかいった規格の提案もあったけどさぁ、
https://ja.wikipedia.org/wiki/Embedded_C%2B%2B
企画倒れに終わったので書籍とかはあんまりないと思う。
0495デフォルトの名無しさん (スップ Sd1f-xGPl)
垢版 |
2018/11/24(土) 08:17:49.70ID:WC34mdadd
ゲームは例外ダメだったりC++03だったりしたけど
今はだいぶ現代的なC++になってきてるよ
0497デフォルトの名無しさん (ワッチョイ 5305-04Xy)
垢版 |
2018/11/24(土) 08:45:19.63ID:sJe2ncgH0
>>484
shared_ptrがGCと似た仕組みで動いている場合があるからといって、
shared_ptrがGCの一種であるというのはちょっと飛躍してない?
0499はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 6f6f-zhOP)
垢版 |
2018/11/24(土) 10:04:19.96ID:yk09TxVj0
>>497
メカニズムは GC だから GC であるという単純な主張だよ。 似ているんじゃなくてそのものだと言ってる。

前スレで QZ 氏が書いている言語との関係性、抽象化の仕方による区別にも説得力を認めてはいるけど、
一般的に GC 付きで実装される言語のほとんどでは意味論としては GC を要求しているわけではなく、
「オブジェクトの寿命を無期限にする」という要求があって、それをある程度実現するために GC が
使われているに過ぎないということを考えれば言語側の意味論とメカニズムは切り離す方が自然で、
メカニズムが GC ならそれは GC だというのが私の考える理屈。
0500デフォルトの名無しさん (ワッチョイ e3b3-aItx)
垢版 |
2018/11/24(土) 11:54:49.92ID:FpJ57Whd0
>>493
そういう選民思想的な考え方はいかがなものかと思うけどね
実際C++をCのような低レベル部分も含めてちゃんと理解し
テンプレートを使った総称的プログラミングまで使いこなし、最新のライブラリも使いこなすのに
どれだけの学習コストがかかるか
世の中ははちみつみたいなヒマ人ばっかじゃないんだよ?
俺スゲーと言いたいがためにC++の普及を妨げるな
0501デフォルトの名無しさん (アウアウカー Sa87-ZX3B)
垢版 |
2018/11/24(土) 12:10:10.43ID:1C+vWWG1a
>>489
案外C++入門書ってCと同じ文字列は文字型の配列とか、そう言うところから入っちゃうから、
文字列はstring型、配列の代わりにvector型とかが入門の時点で説明されてるのって案外少ない。

ストラウストラップのプログラミング入門 とかどうよ?

そうじゃなくて、文字列や配列はCと同じの使いたいなら、適当な入門書から使えそうなの抜き出せば良い。
0503はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 6f6f-zhOP)
垢版 |
2018/11/24(土) 14:44:00.89ID:yk09TxVj0
>>500
隅々まで使いこなせと言ってるわけじゃない。
フルセットの C++ を自分なりに使えよと言ってるのであって、
その根拠として、一定の形に定まった C++ のサブセットという試みは
ろくでもない結果に終わったという事実を紹介してるだけだ。
0504デフォルトの名無しさん (ワイーワ2 FFdf-OXRW)
垢版 |
2018/11/24(土) 14:45:16.71ID:4kdGLnPdF
初心者や C++ しか知らない人が
C++ を Better than C として使うことは不可能に近い

C も C++ も知ってて C++ を敢えて C として使うことが出来る人だけが
Better than C として使える
0505デフォルトの名無しさん (ワッチョイ f3c3-9Nj+)
垢版 |
2018/11/24(土) 14:54:34.26ID:LPhqEBYf0
Cで書くならちゃんとCとしてCの範疇で規格に沿って書けと思うけどな
準拠先はC89でもC99でもC11でもいいけどさ
なんで異言語(C++)を中途半端に混ぜようとするの?
0506デフォルトの名無しさん (ワイーワ2 FFdf-OXRW)
垢版 |
2018/11/24(土) 15:10:55.48ID:4kdGLnPdF
そういうときは拡張子 .c にする
0507はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 6f6f-zhOP)
垢版 |
2018/11/24(土) 15:13:10.06ID:yk09TxVj0
D&E では、 C から C++ への段階的な移行が出来ることを
意図して C++ を設計した (Better C として使える) ということが書いてあって、
確かに私も C を知らなかったら C++ はまともに使えなかっただろうなと思う。

でも、 C の延長線上で C++ の便利な機能を使ったプログラムって
どこまで C++ の機能を取り入れても「C++ 的なプログラム」ではないなとも思う。
C++ を (綺麗に) 使うなら C++ を前提とした設計が必要なので、
Better C として使うことを積極的には勧めにくいという気持ちもある。

欲しいのが「C++」ではなく「考え方は C っぽいけどもうちょっと高級なやつ」ならば
Go あたりを考えてもいいんじゃないかな。
0508デフォルトの名無しさん (ワイーワ2 FFdf-OXRW)
垢版 |
2018/11/24(土) 15:17:05.59ID:4kdGLnPdF
Dが過疎ってるしな
0512デフォルトの名無しさん (ワッチョイ cf30-zhOP)
垢版 |
2018/11/24(土) 17:15:34.96ID:oBJLSqih0
入門書の初っ端にcin,coutを多用しておきながら、C言語から段階的に移行出来るとか寝言は寝て言えって感じやなw
それでいてoperatorの説明は最後の方とか。大人しくprintfとscanfにしとけや。
0514デフォルトの名無しさん (ワッチョイ 83b3-4vBw)
垢版 |
2018/11/24(土) 17:30:37.66ID:aTKLem3I0
>>511
否定が多すぎて読み取りにくい。
「C言語を知らなかったら、C++が書けないのはありえない」→「C言語を知らなかったら、C++が書ける」→「C++ を書けなかったらC言語を知っている」
0515デフォルトの名無しさん (ワッチョイ 83b3-A3/R)
垢版 |
2018/11/24(土) 18:10:05.30ID:sj/p1kLr0
禿げは預言者に過ぎず、C++を授けたのは神なのでは。
0516デフォルトの名無しさん (ワッチョイ e3b3-zhOP)
垢版 |
2018/11/24(土) 18:47:29.20ID:F/l20HKb0
>>503
お前D&E読んでるならEmbedded C++の話はまた別だと知ってるはずだが
EC++はC++の方言を作ろうとしたのが失敗したんであって
「そんなもん使うくらいなら、職場やらプロジェクトでC++の一部の機能に限定して使え」と
禿も言ってたろうが

質問者の質問無視して何押し付けてんの?何様だよ
言語の使い道を決めるのはお前じゃない
0518デフォルトの名無しさん (ワッチョイ 83b3-A3/R)
垢版 |
2018/11/24(土) 19:18:10.31ID:sj/p1kLr0
C++はマングリガエシがどうのこうのって話を聞いたことがあるな。
0520はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 6f6f-zhOP)
垢版 |
2018/11/24(土) 20:28:56.70ID:yk09TxVj0
>>516
ん〜、俺の言ってることが伝わってないな。
「自分なり」の、つまりは各プロジェクト、各チームの事情に合わせて (制限して) 使うべきで、
どっかからよくわからん「固定されたサブセット」を引っ張ってくるのはクソって話だから、
あなたの言うそのままのことを俺は言ってるつもり。
0525デフォルトの名無しさん (ワッチョイ c380-1YVs)
垢版 |
2018/11/24(土) 23:37:53.13ID:or35NFsF0
C++ではいろんなもんが作られてる
クリティカルなシロモノでスクリプトが使われることなんか滅多にない
0526デフォルトの名無しさん (ワッチョイ ff12-1YVs)
垢版 |
2018/11/25(日) 00:13:09.35ID:zFZWesGa0
要するに本を口実にして人間の能力を制限したいってことでしょう
ンなモンC++の理念には全く反してるんじゃあないスかね
そいつの能力の限界まで迫れなきゃあC++を使う意味なんてないよ

会社の教育目的なんだろうけど「本に書いてあること以上はするな」ってのは
公教育の理念に縛られたクズが言いそうなこと
他人の能力にストッパー掛けて制限したいための口実に過ぎない

だからBetter Cとかは全く関係ない
ただ単に目的は「そいつの能力を制限したい」
これだけ
0529デフォルトの名無しさん (ワッチョイ 83b3-A3/R)
垢版 |
2018/11/25(日) 01:11:41.31ID:0mYB5fkb0
リファクタリングすると重いソフトになる。
何故なのか。
0530デフォルトの名無しさん (ワッチョイ 53ea-zhOP)
垢版 |
2018/11/25(日) 03:06:29.17ID:dzula6mP0
>489みたいなのは、よくあることだろう?
大抵はコーディング規約で、なんらか制限したりとかしていると思うけど。

そもそもC++を使えるプログラマが、そんなにいるとは思えない。
EffectiveC++を知らない(”読んでない”でなく)プログラマも数多くいる。
チーム全員がと言うことになると、一番下の人に合わせることになるだろう。
0533デフォルトの名無しさん (ワッチョイ cf81-GWSg)
垢版 |
2018/11/25(日) 07:41:16.76ID:tOsyjBp30
C++ boost.asioについて質問です。
boost::asio::ip::tcp::acceptorのasync_acceptはスレッドセーフ?
サーバーを実装するとき1ポートで1acceptorになるはずだけど
このacceptorは複数のスレッドからasync_acceptしても大丈夫?
一つのacceptorを複数のスレッドでacceptするのはパフォーマンスの観点からも良いですか?
0534679 (アウアウカー Sa87-ZX3B)
垢版 |
2018/11/25(日) 08:03:57.75ID:ae+bi37xa
>>531
ポイントカードやクレジットカードのデータを読み込んで表示させるプログラム自作する営業がいる一方で、
プログラマーとして入って何も出来ない奴もいる。
(こう言うのは早々に消えるが)

実力じゃなくて、何が主な収入かでプログラマーと言われてる所はある。

まあ、あれはプログラマーが外人で、都合の悪い事は認めないから証拠集めに仕方なく覚えたスキルってのもあったかもだけど。
0535デフォルトの名無しさん (ワッチョイ 239d-A3/R)
垢版 |
2018/11/25(日) 09:47:53.23ID:2raeFUr40
>>533
スレッドセーフかどうかなんて簡単に調べられるんじゃない?
セーフかどうか調べる方法がわからんの? 先ずはその調べる方法を確立したほうが
いいんではない?
0541デフォルトの名無しさん (ワッチョイ cf81-GWSg)
垢版 |
2018/11/25(日) 17:20:24.93ID:tOsyjBp30
>>535
>>537
ありがとうございます。
勉強します。
0546デフォルトの名無しさん (ワッチョイ 1a23-GcNG)
垢版 |
2018/12/05(水) 00:32:10.11ID:IHVRryeE0
https://kagasu.hatenablog.com/entry/2017/05/02/120156

このページで、例えば

ifs.imbue(locale(locale::empty(), new codecvt_utf16<wchar_t, 0x10ffff, consume_header>));

というのがあって、locale()の第二引数でnewされたものがありますが、
これをdeleteする記述が見当たりません。
他のページでも同様です。
リークしてそうで怖いのですが、一体どこでdeleteされてるんでしょうか??
0549デフォルトの名無しさん (ワッチョイ dbe7-hzet)
垢版 |
2018/12/05(水) 18:46:56.03ID:ASlfAML90
普通にどうプログラムを書いていいのかわらないので
質問したいのですがよろしいですか?
すれ違いならすいません
0550デフォルトの名無しさん (ワッチョイ 1723-C97y)
垢版 |
2018/12/05(水) 18:51:05.82ID:kX9gokKe0
書いてみ
0551デフォルトの名無しさん (ワッチョイ dbe7-hzet)
垢版 |
2018/12/05(水) 19:04:59.96ID:ASlfAML90
図1
000
000
000
図1の0の部分を0から9までのすべての数字に置き換えたものを
表示して変数に格納する
図では3X3にしましたがnXnだとしてください。
説明が下手かもしれませんがよろしくお願いします
0552デフォルトの名無しさん (ワッチョイ 1723-C97y)
垢版 |
2018/12/05(水) 19:17:46.46ID:kX9gokKe0
0から9までのすべての数字は10個あるが
場所は9個しかないがどうするの
0553デフォルトの名無しさん (アウアウウー Sa47-+RRK)
垢版 |
2018/12/05(水) 19:19:02.10ID:A1G7ulzba
表示も必要?
0554デフォルトの名無しさん (ワッチョイ dbe7-hzet)
垢版 |
2018/12/05(水) 19:34:26.69ID:ASlfAML90
説明が下手ですいません
236
000
011
こんな感じで9か所すべてに0から9まで入ったものを全パターン格納したいです 
0555デフォルトの名無しさん (ワッチョイ 237f-C0zt)
垢版 |
2018/12/05(水) 19:44:08.41ID:3dIXAL6A0
変数に全パターン格納するのは死ぬほどメモリ食うな
0557デフォルトの名無しさん (ワッチョイ dbe7-hzet)
垢版 |
2018/12/05(水) 19:55:45.26ID:ASlfAML90
.csvにして出力したいので
excelで手打ちするよりはいいのかなと
0560デフォルトの名無しさん (ワッチョイ 0bb3-Gcmv)
垢版 |
2018/12/05(水) 21:02:47.61ID:OZlj6GiF0
それは3*3を1次元で考えると
0 0 0 0 0 0 0 0 0
から1ずつ増やして
9 9 9 9 9 9 9 9 9
まで表示して全パターンを変数に格納ってこと?
単純に1桁1バイトで考えると1パターンにつき9桁9バイト必要なので、格納領域だけで9000000000バイト=約8.4ギビバイト必要なんだけどそういうこと?
1000パターン/秒の速度で表示したとしても104日かかる計算になる。
課題か何か知らないけど、問題を勘違いしてるのでは?
0561デフォルトの名無しさん (ワッチョイ 1a61-2OVW)
垢版 |
2018/12/05(水) 21:04:45.27ID:zPVAi42/0
>>551
0からN×N桁の 10進数
0562デフォルトの名無しさん (ワッチョイ 0bb3-hzet)
垢版 |
2018/12/05(水) 21:04:58.31ID:RkaIFTNe0
3*3だったら要素数9の配列を用意してループで回せばいいだけじゃないの?
0563デフォルトの名無しさん (ワッチョイ 1a12-y69T)
垢版 |
2018/12/05(水) 21:12:05.38ID:8vnwU0Eo0
9!≒36万行のcsvが欲しいのか?

4x4だと16通りで16!=20?922?789?888?000
おおよそ21京行のcsvファイルが出来上がる

5x5だとwikipediaにもoeisにも載ってないが
15,5112,1004,3330,9859,8400,0000 らしいので
15.5穣行のcsvファイルが出来上がる
Yが一歩手前の??なんで、世界中の記憶媒体を寄せ集めても足りるかどうか・・・

6x6だと36!の
37,1993,3267,8990,1217,4679,9944,8150,8352,0000,0000
37正
csvファイルを作り終える前に人類滅亡するレヴェル
0564デフォルトの名無しさん (ワッチョイ dbe7-hzet)
垢版 |
2018/12/05(水) 21:19:06.30ID:ASlfAML90
実際に必要なのは160万通りぐらいだけど無理?
無理なら諦めます
0566デフォルトの名無しさん (ワッチョイ dbe7-hzet)
垢版 |
2018/12/05(水) 21:25:59.07ID:ASlfAML90
すいません諦めます
ありがとうございました
0567デフォルトの名無しさん (ワッチョイ 0bb3-hzet)
垢版 |
2018/12/05(水) 22:03:07.79ID:RkaIFTNe0
諦めたらそこで終了だよ!!!
0570デフォルトの名無しさん (ワッチョイ 0bb3-hzet)
垢版 |
2018/12/05(水) 22:14:00.75ID:RkaIFTNe0
蟻ちゃん、なに終わらせてんのさ。
0572はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5b6f-n9Ol)
垢版 |
2018/12/06(木) 04:47:25.11ID:bHPTeUA/0
N×N のテーブルを N 種類の値同士の演算結果と考えて
その演算結果が群の性質を満たすパターンだけを取り出す
というような課題はやったことがあるな。

群論的には値の個性は意味がなくて、
たとえば全ての 1 と全ての 2 を交換したようなパターンは
等しいという扱いになってしまうので、
それを除去するのが面倒だった。

いや、この話題の流れには関係ない話なんだけど >>571 を見て思い出したもんだから。
0578デフォルトの名無しさん (ワッチョイ 497b-Po2/)
垢版 |
2018/12/07(金) 02:14:13.85ID:MQVHpO7o0
部分vectorって言ってるから、Bを参照扱いで挿入出来ないかってことじゃないの?
Bを書き換えたらAにも反映されるみたいな。
まぁ、vectorじゃ構造上無理なんだけど。
0579デフォルトの名無しさん (ワッチョイ 0123-GoBb)
垢版 |
2018/12/07(金) 14:42:20.03ID:lkrG/qbb0
slice
0580 ◆QZaw55cn4c (ワッチョイ 5360-460t)
垢版 |
2018/12/07(金) 23:37:48.83ID:iNxdNg3x0
>>572
>N×N のテーブルを N 種類の値同士の演算結果と考えてその演算結果が群の性質を満たすパターンだけを取り出す
すごく興味がありますね…
準同型を検出するのが難しそうですが、ガウス吐き出し法で同一解(ただす解を小さいもの順に並べなおす)を弾くようにするだけでなんとかなりますか?
ググッてみると、位数12 の群のひとつは、巡回群でも巡回群の直積でもない、これより低位には現れなかった新たなパターン、らしいのです、これはどんな群なのか具体的に知りたいものです
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況