15/10/22 16:46:09.18 UnQTPRBv.net
vectorの便乗質問ですが、reserveされてしまった余分な容量を削除する方法としてswap技法
std::vector<T>(x).swap(x)
がありますが、これは一時オブジェクトは全く作成されないのですか?
無名オブジェクトとはいえコンストラクタを呼んでいるわけですから、作成されてるような気がするのですが
996:デフォルトの名無しさん
15/10/22 17:44:22.04 TivbSMZT.net
されてるよ
997:デフォルトの名無しさん
15/10/22 18:39:56.40 UnQTPRBv.net
>>983
ありがとうございます。やはり作成されるのですね
vectorの容量をシュリンクする効率的な方法としてswap技法を紹介してる人を目にしますが、
コードはシンプルになるものの処理効率が上がるわけではないですよね
998:デフォルトの名無しさん
15/10/22 18:43:29.83 TivbSMZT.net
>>984
swap技法以外に、方法なくない?
999:デフォルトの名無しさん
15/10/22 18:49:05.63 +o7cqPdB.net
>>981 は質問の意図をまったく把握してないから無視していいと思う
>>984
複雑で効率的な方法示してみなよ。無いから。
1000:デフォルトの名無しさん
15/10/22 18:53:09.88 UZ6K9ouN.net
自作のベクタークラスを作る
サイズを縮小する場合はreallocを使う
1001:デフォルトの名無しさん
15/10/22 18:56:31.41 IiO/at8e.net
shrink_to_fit()
1002:デフォルトの名無しさん
15/10/22 18:59:03.48 E1Ocrnf5.net
最初から必要なサイズを確保すればいい。
1003:デフォルトの名無しさん
15/10/22 20:19:27.23 gQOdFLsP.net
春よこい
1004:デフォルトの名無しさん
15/10/22 21:33:39.08 OXupIzBk.net
次スレ
C++相談室 part120
スレリンク(tech板)
1005:デフォルトの名無しさん
15/10/22 21:55:12.08 kinLxVE3.net
>>989
必要なサイズがわかってるなら単なる配列でよくね?
1006:デフォルトの名無しさん
15/10/22 22:15:13.77 TKCRaEBU.net
>>992
だったら君は配列だけ使ってれば?
1007:デフォルトの名無しさん
15/10/22 22:43:30.77 kinLxVE3.net
>>993
必要なサイズがわかってるなら、そうしてますが何か?
1008:デフォルトの名無しさん
15/10/22 23:19:22.19 OwqJeF9X.net
必要なサイズがわかっててもvectorなドアホがいたw
1009:デフォルトの名無しさん
15/10/22 23:21:34.94 plnHfgiP.net
ポインタでも参照でもない変数って
仮想関数呼んでも呼ばれる関数が静的に決まるよね
このときもvtable経由で呼ばれる?(仮想関数の呼び出しオーバーヘッドがある?)
それともオーバーヘッド0で呼ばれる?
それとも未定義? 最適化次第?
1010:デフォルトの名無しさん
15/10/22 23:21:45.47 4GjtJ8Lk.net
「わかる」タイミングの問題だ
1011:デフォルトの名無しさん
15/10/22 23:22:03.08 l1df8Qjo.net
vectorって配列に比べてそんなにオーバーヘッドあるか?
1012:デフォルトの名無しさん
15/10/22 23:24:06.05 Y4jcRaLX.net
スタック容量を減らすならarray < vector
1013:デフォルトの名無しさん
15/10/22 23:33:55.59 rvBOfPQs.net
>>995
それをドアホというお前さんこそドアホである可能性
1014:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
1015:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています