C++相談室 part150

レス数が950を超えています。1000を超えると書き込みができなくなります。
2020/03/24(火) 00:04:33.93ID:YFRNwZnv
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。

前スレ
C++相談室 part149
https://mevius.5ch.net/test/read.cgi/tech/1581974381/
このスレもよろしくね。
【初心者歓迎】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/ (日本語)

テンプレここまで
2020/05/11(月) 15:02:26.79ID:rdm6Cg4w
>>871
誤: 変数名として灰化の用にすればわかりやすいかもしれない。
正: 変数名としては、以下のようにすれば分かり易いかも知れない。
2020/05/11(月) 15:28:25.94ID:ZT/W926b
a0がスコープから消えないのは片手落ち
どのみちトリッキーなことして読み手を混乱させることしない方がいい
単純にスコープを一画面に収まるぐらいに短くしろ
2020/05/11(月) 15:33:11.51ID:rmb+jfMY
キモい個人サイトの宣伝をNG登録っと
2020/05/11(月) 16:16:12.98ID:rdm6Cg4w
>>873
>a0がスコープから消えないのは片手落ち
言われてみれば。
2020/05/11(月) 16:35:15.76ID:gZOsi0FN
処理を途中で止めて、変数とかvectorの中身を確認したりするソフト知らない?
2020/05/11(月) 16:37:43.30ID:rdm6Cg4w
>>873
以下のようにすればその問題も一応は解決する。

int a;
(a に対する初期化処理);

{
 const int &a0 = a;
 const int &a = a0;  // 外の a とは別の a を宣言。
 (a を読み取るだけの処理);
}

さらに
#define XXX(_x_) const int &_x_##0 = _x_; const int &_x_ = _x_##0
というマクロを導入すれば、

int a;
(a に対する初期化処理);

{
 XXX(a);
 (a を読み取るだけの処理);
}

でいける。
2020/05/11(月) 16:38:36.67ID:rdm6Cg4w
>>876
それがデバッガー。
IDEの中に入ってる。
2020/05/11(月) 16:59:50.23ID:rmb+jfMY
>>876
Visual Studioに標準で入ってるよ
2020/05/11(月) 17:54:34.39ID:ihiMo4aq
やはり大人しく初期化関数使います
いろいろとアドバイスありがとうございました
2020/05/11(月) 18:09:25.84ID:UkUll7O4
幅優先探索において座標によって侵入コストが均一でない場合に対応するためにプライオリティキューを用いて、
スタート地点からの総移動コスト値(int)を格納する2次元配列と、
それに対応するインデックスとなる座標を格納する構造体(POINT)で実装したいのですが、
ProgrammingPlacePlusというサイトのC++編の「標準ライブラリ」の第12章(priority_queue)のサンプルコードに習って、
使用コンテナがvectorの場合はうまくいくのですが、listにするとコンパイルエラーになってしまいます

int move_cost[256][256];

bool operator >( POINT a, POINT b )
{
return ( move_cost[a.y][a.x] > move_cost[b.y][b.x] );
}

//vector版
std::priority_queue< POINT, std::vector<POINT>, std::greater<POINT> > vector_prio_que;

//list版
std::priority_queue< POINT, std::list<POINT>, std::greater<POINT> > list_prio_que;

初心者ですみません
どうすればlistでも動作させられるのかご教示頂けませんでしょうか
2020/05/11(月) 18:20:43.09ID:rmb+jfMY
>>881
vectorならokでlistはngというと、イテレータの種類じゃね?
vectorはランダムアクセス、listはバイディレクショナルという違いがあって
よく引っかかる要注意箇所だよ
2020/05/11(月) 19:14:29.12ID:UkUll7O4
priority_queueの内部使用コンテナとしては、vector、list、dequeは条件を満たしていると書いてあったので、できるはずだと思ったのですが…

priority_queueは、topメンバ関数で最も優先度の高い要素にしかアクセスできず、
自分で書いたソースでは添え字やイテレータによる直接のアクセスは行っていない
(メンバ関数も、.push .pop .top .emptyしか呼び出していない)のですが、
コンパイルエラーの表示では、ご指摘のとおりリバースイテレータがどうのと出ていました

error C2784: 'reverse_iterator<_RanIt>::difference_type std::operator -(const std::reverse_iterator<_RanIt> &,const std::reverse_iterator<_RanIt2> &)'
:テンプレート引数を 'const std::reverse_iterator<_RanIt> &'に対して 'std::list<_Ty>::_Iterator<_Secure_validation>' から減少できませんでした
'std::operator -' の宣言を確認してください。

これは内部的にイテレータの操作がされておりそこでエラーになっている感じなのでしょうか?
algorithmやxutilityの該当箇所を見ても難しすぎてわかりませんorz
2020/05/11(月) 19:16:21.96ID:X9lKtqAV
>>864
例の奴ですね、ならば、ここはラムダ式の出番でしょう、ラムダ式を定義して即評価します
const int a = [](){int a; a = 1; return a; }();

私以外にもこういうのを希望する人がいるということで、安心しました
2020/05/11(月) 19:28:56.75ID:VXScjWrk
> priority_queueの内部使用コンテナとしては、vector、list、dequeは条件を満たしていると書いてあったので
それってどこ情報?
軽くググった限りだと、vector、dequeしか出てこないけど
2020/05/11(月) 19:48:22.07ID:UkUll7O4
Programming Place Plus というサイトで配布されていた オフライン版(2019-07-01更新版)の C++編の「標準ライブラリ」の第12章(priority_queue)に書いてありました
2020/05/11(月) 20:14:46.80ID:1e8qKpQP
リファレンスにはvectorとdequeしかないね
https://ja.cppreference.com/w/cpp/container/priority_queue
https://cpprefjp.github.io/reference/queue/priority_queue.html
2020/05/11(月) 20:21:27.91ID:UkUll7O4
vectorの部分をdequeに替えたら問題なく動作したので、対応してるのvectorとdequeだけの可能性高そう
できゅーならできる、なんちゃって
2020/05/11(月) 20:42:44.27ID:LZ5jZAGa
(デックなんだけど楽しそうだから黙っとこう…)
890デフォルトの名無しさん
垢版 |
2020/05/11(月) 20:48:20.73ID:oppF2e3I
>>886
そのサイトが取り違えている

https://cpprefjp.github.io/reference/queue/queue.html
>要件を満たすものとしては deque と list

queue | Programming Place Plus C++編【標準ライブラリ】 第11章
https://programming-place.net/ppp/contents/cpp/library/011.html
>Container には、vector(第5章) や list(第6章)

***

https://cpprefjp.github.io/reference/queue/priority_queue.html
>要件を満たすものとしてはvectorとdeque

priority_queue | Programming Place Plus C++編【標準ライブラリ】 第12章
https://programming-place.net/ppp/contents/cpp/library/012.html
>Container には、deque(第7章) や list(第6章)
2020/05/11(月) 21:01:34.17ID:UkUll7O4
そこのサイト詳しくわかりやすく解説してくれているから頼りにしていたのですけど、間違いがあるとは残念ですね…
vectorは要素をずらしたりコピーしたりで実行速度が遅そうだと思ってlistを使いたかったのですが、
素人考えでしたかね
2020/05/11(月) 21:10:39.83ID:1x7ET1G/
dequeでよくね
2020/05/11(月) 21:30:43.10ID:rmb+jfMY
>>883
difference_typeって書いてあんじゃねえかよ
バイディレクショナルなイテレータは引けねえんだよ
つまりlistは使えねえってこと
2020/05/11(月) 21:33:07.54ID:M5DpbX0A
>>883
std::priority_queue
https://cpprefjp.github.io/reference/queue/priority_queue.html

ここには、vector・dequeがあると書いてある。
list は書いていない
2020/05/11(月) 21:37:14.43ID:VXScjWrk
priority_queueって内部実装がヒープみたいだから、
末尾にしか追加削除しないと思われるので、vectorで十分では
2020/05/11(月) 21:45:02.52ID:1e8qKpQP
コンセプトがくればこういう悲しい出来事も減るのかな
897デフォルトの名無しさん
垢版 |
2020/05/11(月) 21:47:53.20ID:zAHWYKkR
C++って何作れば勉強になるんだろ
2020/05/11(月) 21:54:43.39ID:UkUll7O4
縦10マス×横40マスの地図で幅優先探索を100回まわして時間計ったら、
vectorだと989ms
dequeだと904ms
で大差ないかんじでした
デフォルトのままvectorを利用していきたいと思います
アドバイス下さいました熟練者の皆さまありがとうございましたm(_ _)m
2020/05/11(月) 22:38:15.90ID:M5DpbX0A
漏れは、2分ヒープを自分で作って、ソートしたりしたけど、

配列の[0]は使わず、[1]から始めると計算が楽なので、
親1, 左右の子は2, 3で、法則は親n, 子2n, 2n+1

コンテナの最後にオブジェクトを追加し、
それが親の数値より小さい場合は、
再帰的に親と交換していく (親子を交換)

再帰的に、親は両方の子以下の数値をもつ。
左右の子(兄弟)の大小関係は考慮しない

配列の先頭要素[1]をPopし、配列の最後の要素を、
[1]に持ってきて、そこから再帰的に、左右の子と比べながら、
子の数値より大きい場合は、入れ替える

ピッコロ大魔王は、これよりもさらに効率的な方法を言ってたけど

このアルゴリズムでは、deque のリンクは不要だろ?
親n, 子2n, 2n+1 で、メモリの場所が分かるのでは?
2020/05/12(火) 00:41:18.87ID:NsC/lgb+
>>884
質問者はこの場面でラムダ式を持ち出したくないと >>860 に書いてある。
どうして文脈を読めんのだ。
2020/05/12(火) 01:32:23.54ID:nCmEHjd6
>>899
なるほど、n, 2n, 2n+1 番の要素に格納してゆくかんじですか、素晴らしいアイデアですね
自力での実装がどうしても必要になったら、配列で作るときのヒントにさせていただきますね

>vectorだと989ms
探索1回あたり10msもかかるのはちょっとおかしいだろうと思って見直したら、
ソリューション構成をDebugにして、「デバッグ開始」してるせいでした
ソリューション構成をReleaseにして、「デバッグなしで開始」にしたら、
探索1回あたり0.02ms弱に収まりました(vector使用時)
STLコンテナ使っててデバッグモードだと500倍も遅くなりうるのか…
ちなみにdeque使用時は0.05msでやや遅めだったのでやはりvectorを使う方がよさそう
902899
垢版 |
2020/05/12(火) 02:06:26.24ID:q3FkXSvr
普通の実装では、[0]から始めると、
親0, 左右の子は1, 2で、親1, 左右の子は3, 4で、
親n, 子2n+1, 2n+2、となり複雑

子3なら親は、(3-1)/2 = 1
子4なら親は、(4-1)/2 = 1.5 で、切り捨てて1

>>899
では、配列の[0]は使わない。[1]から始めると計算が楽
親1, 左右の子は2, 3で、親n, 子2n, 2n+1

子2なら親は、2/2 = 1
子3なら親は、3/2 = 1.5 で、切り捨てて1
903デフォルトの名無しさん
垢版 |
2020/05/12(火) 09:47:29.30ID:9iboxsgQ
呼び出し履歴で過去の状態に戻れるのは、記録してるからだし。
904デフォルトの名無しさん
垢版 |
2020/05/12(火) 11:15:54.23ID:4WwqN1hQ
dequeue一択
2020/05/12(火) 11:26:05.76ID:xLvzOPR4
そういえばdeque使ってよかったって経験ないなぁ
2020/05/12(火) 11:33:14.56ID:8l4UOEBM
heap構造ならvectorが速いよね
事前に適切なサイズでreserveしておけば再配置も起きないし
2020/05/12(火) 11:52:31.54ID:Jgs88fl2
前後にニョキニョキ伸ばすような用途だとdequeが一番よ
2020/05/12(火) 12:41:24.29ID:ph0RCKO5
複数のソース・ヘッダーファイルのセットから一つの動的dllは作れないのでしょうか?
2020/05/12(火) 12:45:13.09ID:NsC/lgb+
>>908
作れるよ。
2020/05/12(火) 13:34:11.63ID:ph0RCKO5
>>909
ありがとん
1つのソース・ヘッダーのセットから1つのdllを作るのには成功したのですが、解説サイトも見つからず困っています
2020/05/12(火) 13:43:29.89ID:NsC/lgb+
>>910
ツールチェインによって手順は違うけど、
ソースファイルがひとつであろうが複数であろうが特別に違うことはしないと思うんだけど。
2020/05/12(火) 14:09:57.20ID:j/0vQ47K
何が困っているのかさっぱりだぜ
リンカでdllにするんだろ
複数のオブジェクトファイルをリンクすることになんの疑問が
2020/05/12(火) 14:15:34.04ID:9Z5koysX
BASICとかやってた部類の人間だとリンクの概念とかわからんかもね
2020/05/12(火) 14:17:43.22ID:9Z5koysX
そういう化石の人がつい最近いじりはじめた可能性もある
2020/05/12(火) 14:18:45.89ID:NsC/lgb+
コマンドラインから使うときでもだいたいコンパイラドライバが
いい感じにやってくれるから細かなことまで意識する機会も
あまり無いしな。
2020/05/12(火) 14:24:47.83ID:9Z5koysX
昔は依存関係調べるメイクファイルビルダーみたいなの使ってたけど
今はそこら辺もコンパイラが全自動で全部やってくれる
2020/05/12(火) 14:24:51.94ID:s06VnCgE
なんかデジャブ…
つい数日前にもまとめてlib化はできるけどdll化できないって質問があったような…
2020/05/12(火) 14:24:57.48ID:SVn+5d28
>>912
おそらく本人は何も分かっていない、何が分かっていないか分からない、書いてあったことを真似るしか出来ない、ということなんだと思う。
2020/05/12(火) 14:30:14.06ID:9Z5koysX
写経から悟りを得るかどうかの瀬戸際という辺りか
2020/05/12(火) 14:32:49.45ID:0QBBSU9v
40年前の子供向けBASIC雑誌ですら動的生成を当たり前のようにしてたのになに言ってんだか
C++は何十年遅れてるのってレベル。ゲイツ舐めすぎ。おまえらはジョブス以下。
2020/05/12(火) 15:24:55.89ID:j/0vQ47K
プログラムからコンパイラ呼び出して動的ライブラリ作って呼び出せばいいじゃん
2020/05/12(火) 18:31:00.41ID:cMBaML9B
>>900
初期化時に別に関数やメンバ関数(メソッド)を立てたくない、という >>860 の要望は、かつて私も体感した感覚であり共感を覚えましたので、失礼だとは思いましたが背中を押す意味もこめて敢えてラムダ式を推すことにいたしました
2020/05/12(火) 19:33:06.04ID:zY2j7Z+k
MacだとCMakeが便利だった。
2020/05/12(火) 19:38:18.80ID:HKiNDHJQ
即時実行されるlambdaなんて
文法上殆んどblock変わらん見た目で、
最適化かければ性能上もblockと変わらんだろ

[&]{
}();
2020/05/12(火) 19:48:18.72ID:Jgs88fl2
即実行ラムダのインライン展開って本当にやってくれるの?
もちろんプログラマとしては期待するところだけど本当に主要コンパイラがやってるか誰か検証してる?
926デフォルトの名無しさん
垢版 |
2020/05/12(火) 20:13:21.67ID:Qfzty+97
一回しか呼ばれないんならインラインも糞も無い罠
2020/05/12(火) 20:26:40.11ID:HKiNDHJQ
>>925
そんなのアセンブリ出力するかobjdumpすりゃ確認できるだろ

msvcですらやっているよ
2020/05/12(火) 20:28:32.15ID:u3gpKmNT
普通の関数コールだって呼び元が1箇所ならインライン展開する
2020/05/12(火) 20:38:00.80ID:Jgs88fl2
そっかMSVCがやってるなら当然みんなやってるわな
サンクス
2020/05/12(火) 20:38:53.13ID:u3gpKmNT
いやそんな事もないけど
2020/05/12(火) 20:40:27.49ID:cMBaML9B
>>924
式しかかけない場所というのがあって、そういう場所では文では駄目ですね
2020/05/12(火) 21:12:01.75ID:sL+fzMl7
set::insert()で警告が出るんですが、なんででしょう?vc2015です。

std::set<int> items;
items.insert(1); // ここで警告 C4800

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\utility(175): warning C4800: 'int': ブール値を 'true' または 'false' に強制的に設定します
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\xtree(1823): note: コンパイル対象の関数 テンプレート インスタンス化 'std::pair<std::_Tree_const_iterator<・・・
2020/05/12(火) 21:13:55.56ID:u3gpKmNT
書いてある通りじゃね?
2020/05/12(火) 22:10:57.80ID:sL+fzMl7
>>933
メッセージ内容見ても全然意味がわからないです・・・
警告出ないようにするには、どう修正したらいいですか?
#pragma warning とかでなくて
2020/05/12(火) 22:13:18.80ID:8l4UOEBM
コンパイラを代える
2020/05/13(水) 03:55:06.92ID:FY0MfQzC
std::set<int> items;
items.insert((int)1); //明示的キャスト
2020/05/13(水) 03:57:56.39ID:4cp2IEvR
なんでintのコンテナにint突っ込もうとしたら型警告出るんだろうな?
やっぱMSVCってクソだわ
2020/05/13(水) 06:13:43.32ID:k7uwq6xu
std::set::inster() の引数でbool型が優先されるのか。
どういうオーバーロードが作用してるんだろう。
2020/05/13(水) 06:24:21.32ID:nnLD0aa0
>>929
頭悪すぎw
2020/05/13(水) 06:25:48.91ID:nnLD0aa0
>>937
おまえがウジ虫だからだよw
941938
垢版 |
2020/05/13(水) 08:02:38.51ID:k7uwq6xu
誤; std::set::inster()
正: std::set::insert()

1文字での入れ替わりは珍しくないけど、2字ずれちゃったのは何故だ?
2020/05/13(水) 08:08:13.33ID:OofdoMNm
両手でタイプしているとタイミングのずれでそうなることがある
2020/05/13(水) 08:09:03.26ID:OofdoMNm
しかしs, e, r, tすべて左手だな
944デフォルトの名無しさん
垢版 |
2020/05/13(水) 09:04:32.56ID:JcjM8CgX
ドッペルゲンガーだろね。
2020/05/13(水) 11:24:17.11ID:FY0MfQzC
即席打法inster
2020/05/13(水) 12:06:10.95ID:xXY8eqGW
>>922
自分も同じです
複数の変数の同時初期化が必要な場合も、前はタプルを返してたけど
c++17の構造化束縛のおかげでずいぶんスマートに書けるようになったと思う
こんな感じで
int i = 2;
int j = 3;
const auto [m, n] = [&](){ return make_tuple(i + j, i - j); }();

make_tupleの代わりにforward_as_tupleを使うと推論がうまくいかないことがあるけどラムダ式だからそんなもんかな
2020/05/13(水) 12:16:08.66ID:VSt/R8YQ
Set
https://cpprefjp.github.io/reference/set/set.html

コメントに、こう書いてあるけど、
// C++17から
2020/05/13(水) 13:45:03.91ID:OofdoMNm
C++17が現行規格で、C++14以前は廃止規格
ただし国内ではC++03が現行規格
2020/05/13(水) 13:48:57.81ID:hlRp6n7l
妙な理解してるな
2020/05/13(水) 18:26:46.18ID:4cp2IEvR
合ってるでしょ
JISの最新C++規格はC++03相当の翻訳(誤字誤訳脱文多数)で、今もそれが日本国内の正式な規格
従うメリットはないです
2020/05/13(水) 20:14:04.10ID:/XT35uGg
ISO は国際的な性格をもつ機関で JIS は日本の機関だけど、
ISO の規格の全てが全世界で通用するわけではないし、
JIS 規格が日本国内だけの効力というわけでもない。
法律に反しない範囲で当事者の合意があればどんな規格だって有効だよ。
規格化活動の便宜のためにそれぞれが独立して活動してるだけなんで、
「JIS は」ならともかく「国内では」みたいな理解は誤り。

あと、「改正前」と「廃止」は別物。
2020/05/13(水) 21:36:34.19ID:OofdoMNm
よっぽど決まりを守りたくないんだね
そういう人を説得しようとは思わない
2020/05/13(水) 21:44:06.78ID:k/cJlRBb
>>952
例えば、JIS が C++03 までしかない、からといって国内では C++11 or later が無効、というわけではないと思います
また「C++14 は廃止された」という言い方はそもそも変です
現時点で C++14 で記述するという「決まり」を立てて C++14 でソフトウェアを作成するとどんな問題が発生するのですか?

あなたのいう「決まり」とはなんですか?
2020/05/13(水) 22:04:10.21ID:KT7abTkK
>>952
なんだこのバカ
2020/05/13(水) 22:28:38.42ID:NqwOCnph
C++03でもC++11でも何でも良い
空気を読んでコードが書ければ

組み込みだといまだにC++03の環境も多くあるから
C++03だけでも書けた方が良いし
C++14の機能を使ったコードが読めないのもマズい
2020/05/13(水) 22:31:02.14ID:NqwOCnph
#defineで動いていて評価も終わってるコードを
わざわざconstexprやインライン関数に書き換えるようなアホな事はするなよ
2020/05/13(水) 22:56:06.50ID:FY0MfQzC
constexprはそんなバカコード修正するために在るものじゃないし
2020/05/13(水) 23:33:51.70ID:RlNw0pdB
壊れていなくても直す…!
2020/05/13(水) 23:39:11.22ID:FY0MfQzC
カチャカチャやらなくてもそのうちバカコードをAIが直す時代がくるさ
シンギュラリティは近い
2020/05/13(水) 23:52:49.48ID:j5LG6G0L
constexprは既存コードを壊すために在る
2020/05/13(水) 23:59:58.84ID:GrmX4NGu
constexpr大好き
2020/05/14(木) 00:50:00.59ID:9MnQCjc/
コンスとエクスパ
2020/05/14(木) 02:04:29.95ID:pTsZ6lRN
#define N 100
#define square(x) ((x)*(x))
// 気持ちわる
2020/05/14(木) 05:49:32.41ID:IJMYY156
>>955
プロの現場ではC++03以降が敬遠されてるところをみると、
その空気とはC++は便利なCとでしか使ってはならないということだな。

多くはJava、C#、Python、rubyで十分だし。
2020/05/14(木) 07:15:55.89ID:Qhhsb9+b
C++17には待ってましたという有り難い機能が色々あるのに
付いて来れない低脳に迎合するために使用禁止とか愚の骨頂だ
足引っ張るなぼけ
2020/05/14(木) 07:16:46.37ID:Qhhsb9+b
不勉強は罪だぞ技術職では
2020/05/14(木) 08:03:23.02ID:IJMYY156
>>965
冗談はよし子さんw 待ってましたって自分で実装せずに待ってたの? ただの低スキルプログラマじゃんw
C++はいつも十年遅れて標準化するから使われない機能満載だよ。

stringが必要とされたのはいつですか? 実行時型情報が必要とされたのはいつですか? マルチスレッドが使われるようになったのはいつですか?

キミは30年遅れてるんだよ。時代錯誤君。だから糞遅いJavaに簡単にシェア抜かれるんだよ。
2020/05/14(木) 08:14:52.77ID:Qhhsb9+b
構造化バインディングなんか自分で実装できるわけねえだろアホ
何も知らないやつが頓珍漢なこと言ってんな
2020/05/14(木) 08:17:40.36ID:Qhhsb9+b
それでプロとは笑わせるぜ

まあ、いるけどねHDDを指さしてメモリと言ったり
MTTR/MTBFを知らない「プロ」も世の中には
2020/05/14(木) 08:18:39.38ID:jtTfGo9Q
Javaって言うほど遅いか
競プロに最適化問題を競って解く分野があるが、Java使いで世界トップクラスの選手複数いる
2020/05/14(木) 08:25:55.19ID:IJMYY156
>>968
まずは構造化バインディングの話をしようか。
キミはいつ頃この機能が必要になったのか、何の実装に必要になったのか詳しく聞かせてくれ。

そしてこの機能で今までどういった素晴らしいソフトを作ってきたのか紹介してくれ。
キミほどの優秀な技術者なら著名なプロジェクトを多数参加しているだろうしな。
レス数が950を超えています。1000を超えると書き込みができなくなります。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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