C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part148
https://mevius.5ch.net/test/read.cgi/tech/1580471646/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.105【環境依存OK】
http://mevius.5ch.net/test/read.cgi/tech/1556142878/
■長いソースを貼るときはここへ。■
http://codepad.org/
https://ideone.com/
[C++ FAQ]
https://isocpp.org/wiki/faq/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)
C++相談室 part149
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん
2020/02/18(火) 06:19:41.54ID:xvjipUWj967デフォルトの名無しさん
2020/03/22(日) 11:56:28.35ID:GKarRavC 多重継承のときのCRTPについて説明してるサイトないですか
968デフォルトの名無しさん
2020/03/22(日) 14:40:43.43ID:VphPQW8g そんなモンがあるなんて初めて知った
やはりC++は奥が深いな
やはりC++は奥が深いな
969デフォルトの名無しさん
2020/03/22(日) 19:39:49.88ID:HvrypJyW >>949
>TeX の文法で数式を書けば
>\prod_{i=0}^{n} \sum_{a[i]=0}^{m}
>という意味です。
絶対ではないが、標準的な数学の記法だと、その意味では、
\sum_{a[0]=0}^{m}・・・\sum_{a[n]=0}^{m}
と書くのがが普通だと思う。
ところでそれは量子力学の経路積分か何かですか?
経路積分の場合は、本によって上記の部分に割と独特の変な記号を使う場合があって、
あなたの書いたように書いてある本もあるかもしれません。
ただ、普通の数学記法だと余り使いませんよね、その書き方は。
>TeX の文法で数式を書けば
>\prod_{i=0}^{n} \sum_{a[i]=0}^{m}
>という意味です。
絶対ではないが、標準的な数学の記法だと、その意味では、
\sum_{a[0]=0}^{m}・・・\sum_{a[n]=0}^{m}
と書くのがが普通だと思う。
ところでそれは量子力学の経路積分か何かですか?
経路積分の場合は、本によって上記の部分に割と独特の変な記号を使う場合があって、
あなたの書いたように書いてある本もあるかもしれません。
ただ、普通の数学記法だと余り使いませんよね、その書き方は。
970デフォルトの名無しさん
2020/03/22(日) 19:46:47.90ID:HvrypJyW >>969
補足すれば、普通の数学記法だと
\sum_{a[0]=0}^{m}・・・\sum_{a[n]=0}^{m} f(a[0],・・・,a[n]) //(1)
ですね。
\prod_{i=0}^{n} \sum_{a[i]=0}^{m} //(2)
の記号の場合は、
X= \prod_{i=0}^{n} \sum_{a[i]=0}^{m} g_i(a[i]) //(3)
の場合は、
b[i] = \sum_{a[i]=0}^{m} g_i(a[i]) //(4)
(i=0, ・・・, n)
を先に計算しておいて、
X = \prod_{i=0}^{n} b[i] //(5)
= b[0]・・・b[i] //(6)
の意味に解釈するのが標準的な数学の記号の使い方だと個人的には思います。
(1)と(3)ではかなり意味が違いますが、(2)の記号を、(1)の先頭に使えるかと言えば、
絶対使えないわけでは有りませんが、使う前に何らかの補足説明が必要になりそうです。
補足すれば、普通の数学記法だと
\sum_{a[0]=0}^{m}・・・\sum_{a[n]=0}^{m} f(a[0],・・・,a[n]) //(1)
ですね。
\prod_{i=0}^{n} \sum_{a[i]=0}^{m} //(2)
の記号の場合は、
X= \prod_{i=0}^{n} \sum_{a[i]=0}^{m} g_i(a[i]) //(3)
の場合は、
b[i] = \sum_{a[i]=0}^{m} g_i(a[i]) //(4)
(i=0, ・・・, n)
を先に計算しておいて、
X = \prod_{i=0}^{n} b[i] //(5)
= b[0]・・・b[i] //(6)
の意味に解釈するのが標準的な数学の記号の使い方だと個人的には思います。
(1)と(3)ではかなり意味が違いますが、(2)の記号を、(1)の先頭に使えるかと言えば、
絶対使えないわけでは有りませんが、使う前に何らかの補足説明が必要になりそうです。
971デフォルトの名無しさん
2020/03/22(日) 19:47:50.29ID:HvrypJyW >>970
誤: = b[0]・・・b[i] //(6)
正: = b[0]・・・b[n] //(6)
誤: = b[0]・・・b[i] //(6)
正: = b[0]・・・b[n] //(6)
972デフォルトの名無しさん
2020/03/22(日) 21:29:26.79ID:LOA9pF7P >>967
派生が継承してる複数の基底を受け取りたいとか?
派生が継承してる複数の基底を受け取りたいとか?
973デフォルトの名無しさん
2020/03/23(月) 12:49:54.29ID:bf1cRh+B int *pInts = new int[10]();
とした場合の最後の()の意味は何でしょうか?
付けない場合との差を教えてください。
とした場合の最後の()の意味は何でしょうか?
付けない場合との差を教えてください。
974はちみつ餃子 ◆8X2XSCHEME
2020/03/23(月) 13:29:11.05ID:FLdc410A >>973
イニシャライザ。
普通のクラスではそれがないときはデフォルトコンストラクタで初期化される (空の括弧があっても無くても同じ挙動) けど、
int 等では初期化を明示しない限り初期化されない。
逆に言えばこの場合は初期化を明示しているので初期化される。 (0 が入る)
イニシャライザ。
普通のクラスではそれがないときはデフォルトコンストラクタで初期化される (空の括弧があっても無くても同じ挙動) けど、
int 等では初期化を明示しない限り初期化されない。
逆に言えばこの場合は初期化を明示しているので初期化される。 (0 が入る)
975デフォルトの名無しさん
2020/03/23(月) 13:37:39.77ID:bf1cRh+B >>974
有難うございます。では、
int *pInts = new int[3](1,2,3); //(1)
int *pInts = new int[3]{1,2,3}; //(2)
の違いは何でしょうか?
有難うございます。では、
int *pInts = new int[3](1,2,3); //(1)
int *pInts = new int[3]{1,2,3}; //(2)
の違いは何でしょうか?
976はちみつ餃子 ◆8X2XSCHEME
2020/03/23(月) 14:11:51.67ID:FLdc410A >>975
(2) の場合には集成体初期化になる。
https://ja.cppreference.com/w/cpp/language/new#.E6.A7.8B.E7.AF.89
(1) も C++20 からは集成体初期化になる。
だけど gcc と clang の最新版で試しても出来ないっぽいし、
あえて丸括弧で書きたい理由はないなぁ。
(2) の場合には集成体初期化になる。
https://ja.cppreference.com/w/cpp/language/new#.E6.A7.8B.E7.AF.89
(1) も C++20 からは集成体初期化になる。
だけど gcc と clang の最新版で試しても出来ないっぽいし、
あえて丸括弧で書きたい理由はないなぁ。
977デフォルトの名無しさん
2020/03/23(月) 14:16:57.36ID:bf1cRh+B978デフォルトの名無しさん
2020/03/23(月) 14:16:57.82ID:bf1cRh+B979デフォルトの名無しさん
2020/03/23(月) 14:18:32.74ID:bf1cRh+B980はちみつ餃子 ◆8X2XSCHEME
2020/03/23(月) 14:39:25.62ID:FLdc410A981デフォルトの名無しさん
2020/03/23(月) 16:20:38.54ID:bf1cRh+B >>980
最初は集成体初期化を使って、
int *pInts = new int[100](1,2,3); //(1)
int *pInts = new int[100](1,2); //(2)
int *pInts = new int[100](1); //(3)
int *pInts = new int[100](); //(4)
とどんどん()の中の項目を減らして行き、最後に0個にした場合、
推論的な延長線上にあると思えるか、それとも全く違った結果になるかどちらですか?
最初は集成体初期化を使って、
int *pInts = new int[100](1,2,3); //(1)
int *pInts = new int[100](1,2); //(2)
int *pInts = new int[100](1); //(3)
int *pInts = new int[100](); //(4)
とどんどん()の中の項目を減らして行き、最後に0個にした場合、
推論的な延長線上にあると思えるか、それとも全く違った結果になるかどちらですか?
982はちみつ餃子 ◆8X2XSCHEME
2020/03/23(月) 17:58:00.87ID:FLdc410A >>981
C++20 的に言えば集成体初期化の文法に統合されたということにはなるんだと思うけど、経緯はよくしらない。
C++20 的に言えば集成体初期化の文法に統合されたということにはなるんだと思うけど、経緯はよくしらない。
983デフォルトの名無しさん
2020/03/23(月) 18:27:48.17ID:bf1cRh+B もし、
{1,2,3,0,0,0,0,0}
{1,2,0,0,0,0,0,0}
{1,0,0,0,0,0,0,0}
{0,0,0,0,0,0,0,0}
のようになるんであれば、()は(xxx)のxxxを書かない場合と捉えるのは数学的推論として
正しい見方になりますね。
実際に上のようになるのか、未初期化の部分が残るのかは知りませんが。
{1,2,3,0,0,0,0,0}
{1,2,0,0,0,0,0,0}
{1,0,0,0,0,0,0,0}
{0,0,0,0,0,0,0,0}
のようになるんであれば、()は(xxx)のxxxを書かない場合と捉えるのは数学的推論として
正しい見方になりますね。
実際に上のようになるのか、未初期化の部分が残るのかは知りませんが。
984はちみつ餃子 ◆8X2XSCHEME
2020/03/23(月) 18:32:49.31ID:FLdc410A985はちみつ餃子 ◆8X2XSCHEME
2020/03/23(月) 18:45:31.47ID:FLdc410A >>983
空の丸括弧でゼロ初期化されるのは C++03 にはすでに有って、
波括弧で初期化する文法は C++11 から入って、
(そこから色々と条件の緩和やら変更やらがありつつ)
空ではない丸括弧で集成体初期化になるのは C++20 からという段階的な変化がある。
追加された文法が既存の文法となるべく一貫性を持つように統合しようとはしているけど、
互換性を壊さないようにというのも C++ の強い要件なので、
正確なルールはごちゃごちゃした条件の塊になりがち。
まあまあ整理されている部分もあるけど、
勝手な予想ではなくちゃんと資料にはあたった方がいいよ。
空の丸括弧でゼロ初期化されるのは C++03 にはすでに有って、
波括弧で初期化する文法は C++11 から入って、
(そこから色々と条件の緩和やら変更やらがありつつ)
空ではない丸括弧で集成体初期化になるのは C++20 からという段階的な変化がある。
追加された文法が既存の文法となるべく一貫性を持つように統合しようとはしているけど、
互換性を壊さないようにというのも C++ の強い要件なので、
正確なルールはごちゃごちゃした条件の塊になりがち。
まあまあ整理されている部分もあるけど、
勝手な予想ではなくちゃんと資料にはあたった方がいいよ。
986デフォルトの名無しさん
2020/03/23(月) 19:36:44.54ID:7lDoSnDw 配列の初期化方法が20通りくらいあるんじゃねえか
987デフォルトの名無しさん
2020/03/23(月) 20:24:40.26ID:V7MpBiZM 結局、波括弧と丸括弧はどっちが良いの?
C++11の時点では、波括弧が使えるところでは波括弧使っとけってのがMayers神の教えだったけども
C++11の時点では、波括弧が使えるところでは波括弧使っとけってのがMayers神の教えだったけども
988デフォルトの名無しさん
2020/03/23(月) 20:44:37.69ID:uqcQPrX7 汝の欲するところを行え
それが法とならん
それが法とならん
989デフォルトの名無しさん
2020/03/23(月) 22:25:35.27ID:d94IfFIM 好きなようにやったところで法(規格なりデファクトスタンダード)にはならんだろw
990デフォルトの名無しさん
2020/03/23(月) 23:44:35.50ID:Y58N/W/D よし、じゃあ今から俺が法な。
ここの住人は全員システムハンガリアン強制
ここの住人は全員システムハンガリアン強制
991デフォルトの名無しさん
2020/03/24(火) 00:05:30.25ID:YFRNwZnv992はちみつ餃子 ◆8X2XSCHEME
2020/03/24(火) 00:21:01.48ID:DmQItF6u >>987
シンタクス的にどちらでも良いときには波括弧を優先した方がよいと思う。
波括弧は縮小変換を許さないので意図しない情報の欠落は防止できる可能性が高い。
縮小変換が必要な場面に限って丸括弧を使えばそこが要注意ポイントってのがわかりやすい。
----
ところで縮小変換より狭化変換という用語の方が好きなんだけど、
みんなどっち使ってる? やっぱ縮小変換の方が標準的かな?
シンタクス的にどちらでも良いときには波括弧を優先した方がよいと思う。
波括弧は縮小変換を許さないので意図しない情報の欠落は防止できる可能性が高い。
縮小変換が必要な場面に限って丸括弧を使えばそこが要注意ポイントってのがわかりやすい。
----
ところで縮小変換より狭化変換という用語の方が好きなんだけど、
みんなどっち使ってる? やっぱ縮小変換の方が標準的かな?
993デフォルトの名無しさん
2020/03/24(火) 14:12:02.77ID:v3Nctwhv994デフォルトの名無しさん
2020/03/24(火) 14:21:15.32ID:Qfdj04Y0 >>992
そうなのね。ありがとうー
そうなのね。ありがとうー
995デフォルトの名無しさん
2020/03/24(火) 14:41:38.83ID:cFvopTvT へぇこんな配列の初期化の仕方あるんだねぇ
お前らC++に詳しいじゃん
お前らC++に詳しいじゃん
996デフォルトの名無しさん
2020/03/24(火) 18:53:00.89ID:l++MC8Rs C言語の時点で int a[100] = {0}; でゼロクリア
もはや裏ワザの部類
https://cpplover.blogspot.com/2010/09/blog-post_20.html
int a[2][2] = { 1, 2, 3, 4 } ;
多次元配列の初期化での謎機能
これも裏ワザにしか見えない
裏ワザ・例外・隠し機能が相まって配列の初期化だけで一冊の同人誌が出来上がる
もはや裏ワザの部類
https://cpplover.blogspot.com/2010/09/blog-post_20.html
int a[2][2] = { 1, 2, 3, 4 } ;
多次元配列の初期化での謎機能
これも裏ワザにしか見えない
裏ワザ・例外・隠し機能が相まって配列の初期化だけで一冊の同人誌が出来上がる
997デフォルトの名無しさん
2020/03/24(火) 20:25:22.03ID:1n+V7cka universal initializerなんてバグの塊でしかない。
https://qiita.com/h2suzuki/items/d033679afde821d04af8
https://qiita.com/h2suzuki/items/d033679afde821d04af8
998デフォルトの名無しさん
2020/03/24(火) 22:49:16.96ID:T0vrM+QL999デフォルトの名無しさん
2020/03/24(火) 22:50:59.22ID:o8Zozk/+ 数学は記号定義してなんぼだからね
1000デフォルトの名無しさん
2020/03/24(火) 23:08:33.60ID:v3Nctwhv10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 35日 16時間 48分 52秒
新しいスレッドを立ててください。
life time: 35日 16時間 48分 52秒
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 【速報】10月の消費者物価3.0%上昇 [蚤の市★]
- 日中関係悪化で「日本からもうすぐパンダがいなくなる」 中国SNSでトレンド1位に [♪♪♪★]
- 【無言】中国怒らせた高市首相→1週間だんまり、国民に実害も説明なし 中国問題を避けてスルー… ★6 [BFU★]
- ネット殺到「高市総理の責任」「完全に高市リスク」「負けるな」中国が水産物輸入停止→流石に総理批判の声も「どう責任取る?」 ★12 [樽悶★]
- 止まらぬ「日本売り」 高市財政への懸念で進む金利上昇と円安 ★2 [蚤の市★]
- 【コメ】価格「5キロ4316円」で最高値を更新…「おこめ券」が解決につながらない根本的な理由 コメ農家が危機感をあらわにする「離農」 [ぐれ★]
- 高市早苗、会食せず議員宿舎に籠って勉強の毎日「飲んでる暇があれば、政策を練り、資料を読みたい」 [485187932]
- 中国父「高市、今回はこの辺にしといたるわ!」 世界の供給源としての信頼維持のためレアアース制裁見送りの公算 [271912485]
- 紀子さま「ケンモ、わらわのバター犬として飼ってやる」👈実際こうなったら悩むよな.. [916950698]
- 東大名誉教授「中国は誤った宣伝を繰り広げ、対立を煽り、経済の失敗による国内の不満を日本に向けている」 [903292576]
- 🏡
- 【悲報】Suica、セキュリティを突破されたのが販売されはじめる [347751896]
