【C++】STL(Standard Template Library)相談室 2
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG【C++】STL(Standard Template Library)相談室
http://pc5.2ch.net/test/read.cgi/tech/1095583235/
関連スレなどは>>2以降で
0002デフォルトの名無しさん
NGNG0003デフォルトの名無しさん
NGNGSTLならもっとスマートに書けるのに・・・
0004デフォルトの名無しさん
NGNGSTLなんてつかうより、もっと素直な関数型言語をつかえばいいのに。。
0005デフォルトの名無しさん
NGNG0006デフォルトの名無しさん
NGNG0007デフォルトの名無しさん
NGNG0008デフォルトの名無しさん
NGNG0009デフォルトの名無しさん
NGNG【C++】template 統合スレ -- Part6
http://pc5.2ch.net/test/read.cgi/tech/1101384692/l50
C++相談室 part38
http://pc5.2ch.net/test/read.cgi/tech/1101473340/l50
0010デフォルトの名無しさん
NGNG0011デフォルトの名無しさん
NGNGなる。
100ステップだったらTステップに
1000ステップなら10ステップだ。
10000ステップなら100ステップだ。
0012デフォルトの名無しさん
NGNG実際に実行されない部分が多いと思うんだけど。
0013デフォルトの名無しさん
NGNGSTLのソースで実行されない部分が多いってことを心配してるの?
使う部分しかコンパイルされないから安心するよ
0014デフォルトの名無しさん
NGNGtemplateは呼び出されたときに初めてインスタンスされる。
これを利用して、実装できないメソッドとかの中身をコンパイルエラーがでるようにして、
コンパイル時にチェックするテクニックもある。
たまにずいぶん前に書いたコードがコンパイルすらできないということが発生したりもするw
0016デフォルトの名無しさん
NGNG【C++】STL(Standard Template Library)相談室
http://pc5.2ch.net/test/read.cgi/tech/1095583235/l50
0017デフォルトの名無しさん
NGNG0018デフォルトの名無しさん
NGNG0019デフォルトの名無しさん
NGNG氏ねよ(プゲラ
0020デフォルトの名無しさん
NGNGファイルが巨大になったとき、std::fstreamだと激遅なんて事態にならないですよね?
それともc言語のfopenのんが良いのかな。
使ってるコンパイラはBCBでつ。
0021デフォルトの名無しさん
NGNGウンコー
0022デフォルトの名無しさん
NGNG何でここで聞くかな。
追記だけなら追加モードで開けばいいから追加するステップが複雑でなければ何を使っても大差ない。
0023デフォルトの名無しさん
NGNG0024デフォルトの名無しさん
NGNG0025デフォルトの名無しさん
NGNG発想がヤヴァイです
キチガイみたいなことすんなよ
>>24
環境かけヴォケ
VCなら大ジョブ
mingwならおけ
cygwinはたぶんヤヴァイ
他はシラネ
0026デフォルトの名無しさん
NGNG0027デフォルトの名無しさん
NGNG0028デフォルトの名無しさん
NGNG>>26
「STL iostream」はセットだよ。ググてみて。
0029デフォルトの名無しさん
NGNG0030デフォルトの名無しさん
NGNG仕切りたがりの古参気取りのキチガイよ
おとなしく冬眠してそのまま永眠しとけ
0031デフォルトの名無しさん
NGNGBCBはしらねーや
ごめんなこんなおれで
0032デフォルトの名無しさん
NGNG0033デフォルトの名無しさん
NGNG相変わらず STL と C++ 標準ライブラリの区別がつかない
莫迦が後を絶たないので、このスレ終了。
【C++】template 統合スレ -- Part6
http://pc5.2ch.net/test/read.cgi/tech/1101384692/l50
C++相談室 part38
http://pc5.2ch.net/test/read.cgi/tech/1101473340/l50
0034デフォルトの名無しさん
NGNGシねや禿
0035デフォルトの名無しさん
NGNG>>9と重複
0036デフォルトの名無しさん
NGNGこんなスレが誤って立たぬよう
是非とも(STL含む)ってのを加えて欲しいものだ
0037デフォルトの名無しさん
NGNG0038デフォルトの名無しさん
NGNG0039デフォルトの名無しさん
NGNGいいえ。
0040デフォルトの名無しさん
05/01/17 01:31:570041デフォルトの名無しさん
05/01/20 00:40:27streamがでかいのだ。
0042デフォルトの名無しさん
05/01/24 03:17:580043デフォルトの名無しさん
05/01/24 03:55:100044デフォルトの名無しさん
05/01/24 12:31:36愛想のないページしか表示されないんですけど・・・
0045デフォルトの名無しさん
05/01/24 12:55:04お前は今、全世界数百万人のGoogleユーザーを敵に回した
0046デフォルトの名無しさん
05/01/24 13:27:510047デフォルトの名無しさん
05/01/24 17:43:140048デフォルトの名無しさん
05/01/24 21:02:03六十数億のうちの数百万なんて微々たるものなんですけど・・・
0049デフォルトの名無しさん
05/01/24 21:04:20そのうち、人間として認められるのは数%だ。
0050デフォルトの名無しさん
05/01/24 22:49:53↓
0051デフォルトの名無しさん
05/01/25 00:48:400052デフォルトの名無しさん
05/01/28 00:11:020053デフォルトの名無しさん
05/02/21 16:22:490054デフォルトの名無しさん
05/02/21 16:46:47http://www.google.com/search?hl=ja&q=string+c%2B%2B
0055デフォルトの名無しさん
05/02/21 17:49:57ありがとう
0057デフォルトの名無しさん
05/02/21 21:59:47vec.push_back(100);
vec.push_back(101);
たとえば上みたいなかんじで
今現在vectorに入っている要素の数と値をデバッガーでしらべるにはどうすれば良いですか?
Eclipse CDT拡張, Cygwinのg++を使ってます。
方法はない?
0058デフォルトの名無しさん
05/02/21 22:26:34プログラムで使われていれば
vec.size() とか vec.front() を評価することができるはずですけどね。
肝心のプログラムで使われてない場合は
(テンプレートのコード生成をg++の自動処理に任せていると)
メソッドのコードは当然バイナリに入らないから使えませんが。
テンプレートのコードを使う使わないに関わらず全部含めるような
コンパイルオプションがgccにあるかどうか調べてみては。
0059デフォルトの名無しさん
05/02/21 22:32:01_Vector_base<int,std::allocator<int> >
_Vector_alloc_base<int,std::allocator<int>,true>
protected
_M_start = 0x0a051b30
_M_finish = 0x0a051b38
_M_end_of_storage = 0x0a051b38
Eclipse(から呼び出されるgdb)で見るとこんな感じでわけわかめなんだよね。
自分で作れば幾らでも中身が見れるのにstlを使ってしまうと
入れたら最後まったく中身がわからんというのが何とも困ってます。
0060デフォルトの名無しさん
05/02/22 00:15:34自分で作れば見れるようなやつが _M_start を見れないとは思わない。
0061デフォルトの名無しさん
05/02/22 09:26:030062デフォルトの名無しさん
05/02/22 12:08:21gdbっていうのは副作用の無いメソッドもウォッチできないのか?
できるなら普通に見ればいいだけだと思うが。
0063デフォルトの名無しさん
05/02/22 12:27:53>>33
0064デフォルトの名無しさん
05/02/22 12:45:180065デフォルトの名無しさん
05/02/22 12:47:49delete する必要があるかどうか。
0066デフォルトの名無しさん
05/02/22 14:03:14自動拡張してくれたり、独自のメモリアロケータ使えたり、
基本的なメソッドを提供してくれる
0067デフォルトの名無しさん
05/02/22 21:46:310068デフォルトの名無しさん
05/02/23 09:30:070069デフォルトの名無しさん
05/02/23 10:13:250070デフォルトの名無しさん
05/02/23 13:57:34VC7だと飛びましたが、STLの仕様として結果は未定義なんでしょうか?
以下テストソース
std::list<int> test_list;
void foo()
{
test_list.push_back(0);
test_list.push_back(1);
test_list.push_back(2);
std::list<int>::iterator it = test_list.begin();
while(it != test_list.end()){
int i = *it;
if(i == 1){
test_list.erase(it);
}
it++;
}
}
0071デフォルトの名無しさん
05/02/23 14:33:37if (i==1) test_erase(it++); else ++it;
なら大丈夫じゃないかな。
0072デフォルトの名無しさん
05/02/23 17:03:30実はこれだけで済む。
remove禁止としてもerase()は次の要素を指すイタレータを返すからこうしたらどうだ。
if (i == 1) {
it = test_list.erase(it);
} else {
it++;
}
0073デフォルトの名無しさん
05/02/23 19:34:560074デフォルトの名無しさん
05/02/23 20:48:05イタレータの指す要素
0075デフォルトの名無しさん
05/02/24 07:29:10「for を含む関数はインライン展開できない」
が山ほど出るのだがどうにかならないものか?
warningは基本的にOFFにしたくないのだが
0076デフォルトの名無しさん
05/02/24 10:06:48どうにもならないというかなんというか……、どうなって欲しいんだ?
0077デフォルトの名無しさん
05/02/24 11:13:30#pragma warning(disable:1234)
#include <boost/source_of_warnings.hpp>
#pragma warning(pop)
恐らくこんな感じで局所的に特定のwarningを殺すpragmaが
コンパイラについていると思うのでそれで殺すとか.
これを毎回やるのが嫌ならこれを一つのヘッダーにしてしまって
そちらをインクルードするようにするとか.
007875
05/02/24 11:55:00ちなみに今使っているのはBorland C++です
0079デフォルトの名無しさん
05/02/24 12:22:09警告なんだから、理解した上で無視するべきだと思うよ。理解した上でね……
0080デフォルトの名無しさん
05/02/26 01:40:040081デフォルトの名無しさん
05/02/26 07:37:090082デフォルトの名無しさん
05/02/26 07:50:38#include <string>
#include <strstream>
double d;
std::string str = (std::ostringstream() << d).str();
0083デフォルトの名無しさん
05/02/26 08:13:49あきらめます。
0084デフォルトの名無しさん
05/02/26 08:20:060085デフォルトの名無しさん
05/02/26 08:21:01あきらめるの早(w
0086デフォルトの名無しさん
05/02/26 19:59:44そんなの常識
0087デフォルトの名無しさん
05/03/03 19:52:24http://www.tietew.jp/cppll/archive/10694
double d = 250.25;
string x = strex::_f( d );
と使えるらしい。
0088デフォルトの名無しさん
05/03/04 20:19:480089デフォルトの名無しさん
05/03/04 21:46:29共通点を探す方が難しいくらい、全然違います。
0090デフォルトの名無しさん
05/03/04 22:45:00vectorは動的配列、listは線形リスト。
0091デフォルトの名無しさん
05/03/04 23:33:030092デフォルトの名無しさん
05/03/05 02:58:100093デフォルトの名無しさん
05/03/05 03:07:480094デフォルトの名無しさん
05/03/05 03:10:43先頭挿入が沢山ありえるならdeque
ないならvector
0095デフォルトの名無しさん
05/03/05 03:25:04なる方法ってありませんか?
struct A{ int x; int y; } data; などとして、
data.←ここまで押すと[ x 、y ] とかメンバが表示されますよね
vector< A > data; として、何個か入れたとして、
data[0]. まで押しても何もでないんです
0096デフォルトの名無しさん
05/03/05 07:47:200097デフォルトの名無しさん
05/03/05 08:30:536.0を使わないでください
0098デフォルトの名無しさん
05/03/05 08:34:472個目からは無理
正直stdのコンテナクラスは使えないと思う
0099デフォルトの名無しさん
05/03/05 08:40:29エェー
0100デフォルトの名無しさん
05/03/05 09:00:17使えないんじゃなくて、使いこなせないんだろ。
0101デフォルトの名無しさん
05/03/05 10:17:11■ このスレッドは過去ログ倉庫に格納されています