2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

【C++】STL(Standard Template Library)相談室 2

1 :デフォルトの名無しさん:05/01/05 13:18:54
前スレ
【C++】STL(Standard Template Library)相談室
http://pc5.2ch.net/test/read.cgi/tech/1095583235/

関連スレなどは>>2以降で

2 :デフォルトの名無しさん:05/01/05 14:41:29
2get!!!!

3 :デフォルトの名無しさん:05/01/05 14:43:24
>>2
STLならもっとスマートに書けるのに・・・

4 :デフォルトの名無しさん:05/01/05 14:46:01
>>3
STLなんてつかうより、もっと素直な関数型言語をつかえばいいのに。。

5 :デフォルトの名無しさん:05/01/05 18:32:52
糞スレ立てんな死ね>>1

6 :デフォルトの名無しさん:05/01/05 19:56:08
STLはTemplateスレとC++相談室に統合って決まっただろ。

7 :デフォルトの名無しさん:05/01/07 12:21:01
糞レス乙

8 :デフォルトの名無しさん:05/01/07 12:35:20
STLを使うと実行ファイルのサイズが一気に100倍に!?

9 :デフォルトの名無しさん:05/01/08 09:22:32
重複スレなのでこちらへどうぞ。

【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

10 :デフォルトの名無しさん:05/01/08 10:28:34
本当にコードが100分の1になるのですか?

11 :デフォルトの名無しさん:05/01/08 10:33:55
>>10
なる。
100ステップだったらTステップに
1000ステップなら10ステップだ。
10000ステップなら100ステップだ。

12 :デフォルトの名無しさん:05/01/08 12:53:20
>>11
実際に実行されない部分が多いと思うんだけど。

13 :デフォルトの名無しさん:05/01/08 12:56:46
>>12
STLのソースで実行されない部分が多いってことを心配してるの?
使う部分しかコンパイルされないから安心するよ

14 :デフォルトの名無しさん:05/01/08 13:18:34
>>11
templateは呼び出されたときに初めてインスタンスされる。
これを利用して、実装できないメソッドとかの中身をコンパイルエラーがでるようにして、
コンパイル時にチェックするテクニックもある。
たまにずいぶん前に書いたコードがコンパイルすらできないということが発生したりもするw

15 :14:05/01/08 13:19:11
>>11じゃなくて>>12
すまそ

16 :デフォルトの名無しさん:05/01/08 16:45:33
立っちゃった以上前スレへのリンクを張っておく。

【C++】STL(Standard Template Library)相談室
http://pc5.2ch.net/test/read.cgi/tech/1095583235/l50

17 :デフォルトの名無しさん:05/01/09 06:07:53
>>16 >1

18 :デフォルトの名無しさん:05/01/09 09:16:46
見落としていた……。OTL

19 :デフォルトの名無しさん:05/01/09 09:25:32
>>18
氏ねよ(プゲラ

20 :デフォルトの名無しさん:05/01/14 10:59:17
アプリのログファイルの追記を、std::fstreamでやるか、超迷ってます。
ファイルが巨大になったとき、std::fstreamだと激遅なんて事態にならないですよね?
それともc言語のfopenのんが良いのかな。

使ってるコンパイラはBCBでつ。

21 :デフォルトの名無しさん:05/01/14 11:05:33
>>20
ウンコー

22 :デフォルトの名無しさん:05/01/14 11:08:11
>>20
何でここで聞くかな。

追記だけなら追加モードで開けばいいから追加するステップが複雑でなければ何を使っても大差ない。

23 :デフォルトの名無しさん:05/01/14 16:04:35
std::fstreamで短時間にファイルオープン・クローズを繰り返すとやヴぁいでつか?

24 :デフォルトの名無しさん:05/01/14 16:06:49
もう一つ、std::fstreamにマルチスレッドで出力しても良いでつか?

25 :デフォルトの名無しさん:05/01/14 16:18:40
>>23
発想がヤヴァイです
キチガイみたいなことすんなよ

>>24
環境かけヴォケ

VCなら大ジョブ
mingwならおけ
cygwinはたぶんヤヴァイ

他はシラネ


26 :デフォルトの名無しさん:05/01/14 16:19:56
だからなんでここで質問するんだって。

27 :デフォルトの名無しさん:05/01/14 16:21:53
相談室だろヴォケ


28 :デフォルトの名無しさん:05/01/14 16:22:59
サンクス、BCBでつ>>25

>>26
「STL iostream」はセットだよ。ググてみて。

29 :デフォルトの名無しさん:05/01/14 16:24:31
このすれC++相談室に統合でしょ


30 :デフォルトの名無しさん:05/01/14 16:26:43
いいじゃねーかSTLなんだしよ
仕切りたがりの古参気取りのキチガイよ
おとなしく冬眠してそのまま永眠しとけ

31 :デフォルトの名無しさん:05/01/14 16:27:49
>>28
BCBはしらねーや
ごめんなこんなおれで

32 :デフォルトの名無しさん:05/01/14 17:18:14
stream は STL じゃないと何度言えば解るんだハゲ。

33 :デフォルトの名無しさん:05/01/15 01:45:17
STL を C++ 標準ライブラリと別のスレにする意味がないのと
相変わらず 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


34 :デフォルトの名無しさん:05/01/15 11:17:10
>>30
シねや禿

35 :デフォルトの名無しさん:05/01/15 11:19:44
>>33
>>9と重複

36 :デフォルトの名無しさん:05/01/15 16:17:21
C++相談室の次スレには
こんなスレが誤って立たぬよう
是非とも(STL含む)ってのを加えて欲しいものだ


37 :デフォルトの名無しさん:05/01/16 10:41:19
STLはboostに取って代わられるの?

38 :デフォルトの名無しさん:05/01/16 10:42:26
五月雨

39 :デフォルトの名無しさん:05/01/16 11:58:15
>>37
いいえ。

40 :デフォルトの名無しさん:05/01/17 01:31:57
Boost.STLなるものが出る可能性は十分にあると思う.

41 :デフォルトの名無しさん:05/01/20 00:40:27
STLがでかいのではなく
streamがでかいのだ。

42 :デフォルトの名無しさん:05/01/24 03:17:58
boostって何?

43 :デフォルトの名無しさん:05/01/24 03:55:10
っ [ http://www.google.co.jp/ ]

44 :デフォルトの名無しさん:05/01/24 12:31:36
>>43
愛想のないページしか表示されないんですけど・・・

45 :デフォルトの名無しさん:05/01/24 12:55:04
>>44
お前は今、全世界数百万人のGoogleユーザーを敵に回した

46 :デフォルトの名無しさん:05/01/24 13:27:51
イベント日とかオリンピック期間中とか、十分愛想があると思うけど。

47 :デフォルトの名無しさん:05/01/24 17:43:14
>>45 よく言った(笑

48 :デフォルトの名無しさん:05/01/24 21:02:03
>>45
六十数億のうちの数百万なんて微々たるものなんですけど・・・

49 :デフォルトの名無しさん:05/01/24 21:04:20
>>48
そのうち、人間として認められるのは数%だ。

50 :デフォルトの名無しさん:05/01/24 22:49:53
自分が数%の方だと思ってるシアワセモノは手をあげて


51 :デフォルトの名無しさん:05/01/25 00:48:40


52 :デフォルトの名無しさん:05/01/28 00:11:02
>>51は自意識過剰

53 :デフォルトの名無しさん:05/02/21 16:22:49
stringについて解説してあるwebサイトなどを紹介してください

54 :デフォルトの名無しさん:05/02/21 16:46:47
>>53
http://www.google.com/search?hl=ja&q=string+c%2B%2B

55 :デフォルトの名無しさん:05/02/21 17:49:57
>>54
ありがとう

56 :54:05/02/21 18:02:06
>>55
ネタなのか釣りなのかマジレスなのか判断に苦しむな

57 :デフォルトの名無しさん:05/02/21 21:59:47
vector<int> vec;

vec.push_back(100);
vec.push_back(101);

たとえば上みたいなかんじで
今現在vectorに入っている要素の数と値をデバッガーでしらべるにはどうすれば良いですか?
Eclipse CDT拡張, Cygwinのg++を使ってます。
方法はない?




58 :デフォルトの名無しさん:05/02/21 22:26:34
>>57
プログラムで使われていれば
vec.size() とか vec.front() を評価することができるはずですけどね。

肝心のプログラムで使われてない場合は
(テンプレートのコード生成をg++の自動処理に任せていると)
メソッドのコードは当然バイナリに入らないから使えませんが。
テンプレートのコードを使う使わないに関わらず全部含めるような
コンパイルオプションがgccにあるかどうか調べてみては。


59 :デフォルトの名無しさん:05/02/21 22:32:01
vec
_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を使ってしまうと
入れたら最後まったく中身がわからんというのが何とも困ってます。


60 :デフォルトの名無しさん:05/02/22 00:15:34
>>59
自分で作れば見れるようなやつが _M_start を見れないとは思わない。

61 :デフォルトの名無しさん:05/02/22 09:26:03
(_M_finish-_M_start)/sizeof(int)

62 :デフォルトの名無しさん:05/02/22 12:08:21
別にサイズが知りたい訳じゃないだろ。
gdbっていうのは副作用の無いメソッドもウォッチできないのか?
できるなら普通に見ればいいだけだと思うが。

63 :デフォルトの名無しさん:05/02/22 12:27:53
>>57
>>33

64 :デフォルトの名無しさん:05/02/22 12:45:18
vectorをつかうのとnewで配列を確保するのとの違いは何?

65 :デフォルトの名無しさん:05/02/22 12:47:49
>>64
delete する必要があるかどうか。

66 :デフォルトの名無しさん:05/02/22 14:03:14
>>64
自動拡張してくれたり、独自のメモリアロケータ使えたり、
基本的なメソッドを提供してくれる


67 :デフォルトの名無しさん:05/02/22 21:46:31
そんな事はしってます。

68 :デフォルトの名無しさん:05/02/23 09:30:07
そうですよね。失礼しました。

69 :デフォルトの名無しさん:05/02/23 10:13:25
いえ私は知りませんでした。どうもありがとうございました。

70 :デフォルトの名無しさん:05/02/23 13:57:34
std::list で listを走査中にイテレータが指す要素を削除したら、イテレータには何が残るんでしょうか。
VC7だと飛びましたが、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++;
  }
}


71 :デフォルトの名無しさん:05/02/23 14:33:37
STLの仕様としては、リストの場合、消去された要素への反復子が無効になる。
if (i==1) test_erase(it++); else ++it;
なら大丈夫じゃないかな。


72 :デフォルトの名無しさん:05/02/23 17:03:30
test_list.remove(1);
実はこれだけで済む。

remove禁止としてもerase()は次の要素を指すイタレータを返すからこうしたらどうだ。
if (i == 1) {
    it = test_list.erase(it);
} else {
    it++;
}

73 :デフォルトの名無しさん:05/02/23 19:34:56
eraseすると何が消えるの?

74 :デフォルトの名無しさん:05/02/23 20:48:05
>>73
イタレータの指す要素

75 :デフォルトの名無しさん:05/02/24 07:29:10
boostを使ってコンパイルすると
「for を含む関数はインライン展開できない」
が山ほど出るのだがどうにかならないものか?
warningは基本的にOFFにしたくないのだが


76 :デフォルトの名無しさん:05/02/24 10:06:48
>>75
どうにもならないというかなんというか……、どうなって欲しいんだ?

77 :デフォルトの名無しさん:05/02/24 11:13:30
#pragma warning(push)
#pragma warning(disable:1234)
#include <boost/source_of_warnings.hpp>
#pragma warning(pop)

恐らくこんな感じで局所的に特定のwarningを殺すpragmaが
コンパイラについていると思うのでそれで殺すとか.
これを毎回やるのが嫌ならこれを一つのヘッダーにしてしまって
そちらをインクルードするようにするとか.

78 :75:05/02/24 11:55:00
他のコンパイラはこんなwarning出ないのでしょうか?
ちなみに今使っているのはBorland C++です

79 :デフォルトの名無しさん:05/02/24 12:22:09
>>78
警告なんだから、理解した上で無視するべきだと思うよ。理解した上でね……

80 :デフォルトの名無しさん:05/02/26 01:40:04
君のことは無視させてもらうよ

81 :デフォルトの名無しさん:05/02/26 07:37:09
doubleをstringに変換する方法を教えてください

82 :デフォルトの名無しさん:05/02/26 07:50:38
>>81
#include <string>
#include <strstream>
double d;
std::string str = (std::ostringstream() << d).str();

83 :デフォルトの名無しさん:05/02/26 08:13:49
ボーランドのAnsiStringの様に簡単にとはいかないのですね。
あきらめます。

84 :デフォルトの名無しさん:05/02/26 08:20:06
template<typename T> inline std:string ToString(T n) {return (std::ostringstream() << n).str();}

85 :デフォルトの名無しさん:05/02/26 08:21:01
>>83
あきらめるの早(w

86 :デフォルトの名無しさん:05/02/26 19:59:44
某国のコンパイラはループ付きのインライン関数は展開しないんだよ

そんなの常識

87 :デフォルトの名無しさん:05/03/03 19:52:24
フォーマットとというか、文字列変換いえば、cppll の過去ログにこんなものが。
http://www.tietew.jp/cppll/archive/10694

double d = 250.25;
string x = strex::_f( d );

と使えるらしい。

88 :デフォルトの名無しさん:05/03/04 20:19:48
vectorとlistの違いを教えてください。

89 :デフォルトの名無しさん:05/03/04 21:46:29
>>88
共通点を探す方が難しいくらい、全然違います。

90 :デフォルトの名無しさん:05/03/04 22:45:00
>>88
vectorは動的配列、listは線形リスト。

91 :デフォルトの名無しさん:05/03/04 23:33:03
このスレって、重複なんでしょ(ウププ

92 :デフォルトの名無しさん:05/03/05 02:58:10
途中挿入がない場合は、vectorでいいの?

93 :デフォルトの名無しさん:05/03/05 03:07:48
boost::lexical_cast<std::string>(f);

94 :デフォルトの名無しさん:05/03/05 03:10:43
>92
先頭挿入が沢山ありえるならdeque
ないならvector


95 :デフォルトの名無しさん:05/03/05 03:25:04
VC++6.0でSTLのコンテナに入れてるクラスや構造体のメンバを自動表示できるように
なる方法ってありませんか?

struct A{ int x; int y; } data; などとして、
data.←ここまで押すと[ x 、y ] とかメンバが表示されますよね

vector< A > data; として、何個か入れたとして、
data[0]. まで押しても何もでないんです

96 :デフォルトの名無しさん:05/03/05 07:47:20
VC.net使え。

97 :デフォルトの名無しさん:05/03/05 08:30:53
>>95
6.0を使わないでください

98 :デフォルトの名無しさん:05/03/05 08:34:47
VisualStudio.NET2003なら先頭(_Myfirst)だけ自動で見れるが
2個目からは無理
正直stdのコンテナクラスは使えないと思う

99 :デフォルトの名無しさん:05/03/05 08:40:29
>>98
エェー

100 :デフォルトの名無しさん:05/03/05 09:00:17
>>98
使えないんじゃなくて、使いこなせないんだろ。

101 :デフォルトの名無しさん:05/03/05 10:17:11
インテリセンスは出たらラッキーくらいに思っとけ

102 :デフォルトの名無しさん:05/03/05 11:51:45
>>98
それはインテリセンスじゃなくてデバッガの話じゃねえのか

103 :デフォルトの名無しさん:05/03/05 14:21:33
重複スレだっつーにいつまでも続けてるから
VC++ がどーのこーのぬかす阿呆まで出てきたじゃないか。

104 :デフォルトの名無しさん:05/03/05 18:12:44
あえて age

105 :デフォルトの名無しさん:05/03/05 18:39:39
どこと重複よ?
もう一つのC++のスレは、STL以外だろ?

106 :デフォルトの名無しさん:05/03/05 18:41:30
聞く前に調べろ

107 :デフォルトの名無しさん:05/03/05 19:01:59
>>103
ひとりごとは掲示板じゃなくてチラシの裏へ

108 :デフォルトの名無しさん:05/03/05 23:30:28
>>106
× 聞く
○ 訊く

109 :デフォルトの名無しさん:05/03/06 03:59:23
class Coordinate{
double x, y;
};

のようなクラスがあったとして、
insert(make_pair<Coordinate, double>(hoge, mage)) みたいな感じでは
map, multimap のキーとしての挿入ができませんでした。

これは挿入時、map内で比較がなされていて、それが足りないのだろうと思い
Coordinate へ operator <, >, <=, >=, =, ==, != などを
追加してみたのですがやっぱり通らず

そういうもんなんですか?
何か対応策、常套手段などありましたらご教授ください。
@WinXP, VC7.1

110 :デフォルトの名無しさん:05/03/06 06:19:54
>>109
通るはず。どっか別のところで変な事してるんでしょ。
なお、make_pairはわざわざ型を指定する必要はない。


111 :デフォルトの名無しさん:05/03/06 06:36:44
>>109
#include <iostream>
#include <map>
#include <utility>

class Coordinate{
double x, y;
public:
Coordinate(double xx = 0., double yy = 0.) : x(xx), y(yy) {}
bool operator<(const Coordinate& c) const {
return x + y < c.x + c.y;
}
};

int main()
{
std::map<Coordinate, double> mapc;
Coordinate hoge(1.0, 2.0);
double mage = 3.;

mapc.insert(std::make_pair(hoge, mage));
}

112 :デフォルトの名無しさん:05/03/06 06:38:47
あ、抜けてた
std::cout << mapc.begin()->second << std::endl;

113 :デフォルトの名無しさん:05/03/06 10:04:18
>>105
含んでます。っていうかウザイ死ね。

114 :デフォルトの名無しさん:05/03/06 13:13:33
>>113
粘着 ウザー

115 :デフォルトの名無しさん:05/03/06 14:05:45
>>114
うるせーばか

116 :デフォルトの名無しさん:05/03/06 15:55:12
STLがまともに動かないコンパイラを教えてください

117 :デフォルトの名無しさん:05/03/06 15:57:33
>>116
VC6

118 :デフォルトの名無しさん:05/03/06 16:39:47
>>116
さげろ

119 :デフォルトの名無しさん:05/03/06 16:45:45
さげるな

120 :デフォルトの名無しさん:05/03/06 17:26:07
STLだけ更新することはできんの?

121 :デフォルトの名無しさん:05/03/06 17:42:05
STLがまともに動かないと言っているのに
STLを更新してどうすんだ

122 :デフォルトの名無しさん:05/03/06 18:17:07
STLがまともに動かないのと
テンプレートがまともに動かないのは別問題。

123 :デフォルトの名無しさん:05/03/06 19:05:34
まんこ

124 :デフォルトの名無しさん:05/03/06 19:05:58
まんこ

125 :デフォルトの名無しさん:05/03/06 19:06:23
まんこ

126 :デフォルトの名無しさん:05/03/06 19:06:58
うんこ

127 :デフォルトの名無しさん:05/03/06 20:25:48
ちんこ

128 :95:05/03/06 21:54:54
>>96-102あたり
遅くなってスマソ! ありがとう。
VC++6.0ではだめぽということで了解しました。

129 :デフォルトの名無しさん:05/03/06 23:54:52
>>128
おまえ、いい奴だな。

130 :デフォルトの名無しさん:05/03/07 09:33:55
まんこ

131 :デフォルトの名無しさん:05/03/07 10:54:15
まんこ

132 :デフォルトの名無しさん:05/03/07 11:47:48
おまた

133 :デフォルトの名無しさん:05/03/07 19:28:22
まんこ

134 :デフォルトの名無しさん:05/03/07 23:56:56
われめ

135 :デフォルトの名無しさん:05/03/08 00:03:32
スリット

136 :デフォルトの名無しさん:05/03/08 20:02:36
バイナリモードのifstreamからlenバイト読み込みたいのですが、
このとき読み込み位置を移動させたくありません。
char buf[len];
ifs.read(buf, len);
ifs.seekg(-len, ios::cur);
のようにするしかないのでしょうか?
copyとか使って実現することはできませんか?


137 :デフォルトの名無しさん:05/03/08 20:27:39
>>136
それ以外になし。

138 :デフォルトの名無しさん:05/03/08 23:39:16
おめこ

139 :デフォルトの名無しさん:05/03/09 10:26:58
>>136
まんこ

140 :デフォルトの名無しさん:05/03/09 14:21:39
ぼぼ

141 :デフォルトの名無しさん:05/03/09 16:42:37
>>136
理由を聞かせてくれ

142 :デフォルトの名無しさん:05/03/09 17:39:07
std;;string s の内容をm回繰り返した文字列ssを作成する
一番手軽な方法って何でしょうか?ただし、O(N)程度で。
よろしくおねがいします。

143 :デフォルトの名無しさん:05/03/09 17:41:25
for(int i=0; i<m; ++i)ss+=s;

144 :デフォルトの名無しさん:05/03/09 18:28:54
>>142
std::string s, ss;
// ...
ss.reserve(s.length() * m);
for (int i = 0; i < m; ++i) ss.append(s);

145 :デフォルトの名無しさん:05/03/09 20:45:49
>>142
std::string s, ss;
// ...
ss.reserve(s.length() * m);
for (int i = 0; i < m; ++i) ss.append(s);

146 :デフォルトの名無しさん:05/03/09 20:46:21
>>142
std::string s, ss;
// ...
ss.reserve(s.length() * m);
for (int i = 0; i < m; ++i) ss.append(s);

147 :デフォルトの名無しさん:05/03/09 20:47:23
118 名前:デフォルトの名無しさん[sage] 投稿日:05/03/06(日) 16:39:47
>>116
さげろ

119 名前:デフォルトの名無しさん[] 投稿日:05/03/06(日) 16:45:45
さげるな

148 :デフォルトの名無しさん:05/03/09 20:47:53
118 名前:デフォルトの名無しさん[sage] 投稿日:05/03/06(日) 16:39:47
>>116
さげろ

119 名前:デフォルトの名無しさん[] 投稿日:05/03/06(日) 16:45:45
さげるな

149 :デフォルトの名無しさん:05/03/09 21:03:26
>>116
パンツさげろ

119 名前:デフォルトの名無しさん[] 投稿日:05/03/06(日) 16:45:45
にげるな

150 :"”:05/03/09 21:09:55
118 名前:デフォルトの名無しさん[sage] 投稿日:05/03/06(日) 16:39:47
>>116
さあげろしろ

119 名前:デフォルトの名無しさん[] 投稿日:05/03/06(日) 16:45:45
さげるな

151 :">>>1000:05/03/09 21:10:53
118 名前:デフォルトの名無しさん[sage] 投稿日:05/03/06(日) 16:39:47
>>116
さげろ

119 名前:デフォルトの名無しさん[] 投稿日:05/03/06(日) 16:45:45
さげるな

152 :デフォルトの名無しさん:05/03/09 21:14:24
           __________________
    (≦三)  /
  ┃. (#゚Д゚)< 神であるひろゆきの名のもとにおいて
  ┃(≦ ▼ ) | >>1に対し、ここで聖戦を宣言する。
  /. │━‖│ すべての2ちゃんねらーに告ぐ。
  /. │  ‖│ >>1に速やかなる死を!!
 └-┘⊃⊃ \__________________
    (≦三)   (≦三)   (≦三)   (≦三)
  ┃. (#゚Д゚).┃ (#゚Д゚) ┃ (#゚Д゚)┃ (#゚Д゚)
  ┃(≦ ▼ )┃(≦ ▼ )┃(≦▼ )┃(≦ ▼ )
      (≦三)   (≦三)   (≦三)   (≦三)
    ┃. (#゚Д゚).┃ (#゚Д゚).┃ (#゚Д゚)┃ (#゚Д゚)
    ┃(≦ ▼ )┃(≦ ▼ )┃(≦▼ )┃(≦ ▼ )

153 :デフォルトの名無しさん:05/03/09 21:15:22
           __________________
    (≦三)  /
  ┃. (#゚Д゚)< 神であるひろぽんの名のもとにおいて
  ┃(≦ ▼ ) | >>1に対し、ここで聖戦を宣言する。
  /. │━‖│ すべての2ちゃんねらーに告ぐ。
  /. │  ‖│ >>1に速やかなる死を!!
 └-┘⊃⊃ \__________________
    (≦三)   (≦三)   (≦三)   (≦三)
  ┃. (#゚Д゚).┃ (#゚Д゚) ┃ (#゚Д゚)┃ (#゚Д゚)
  ┃(≦ ▼ )┃(≦ ▼ )┃(≦▼ )┃(≦ ▼ )
      (≦三)   (≦三)   (≦三)   (≦三)
    ┃. (#゚Д゚).┃ (#゚Д゚).┃ (#゚Д゚)┃ (#゚Д゚)
    ┃(≦ ▼ )┃(≦ ▼ )┃(≦▼ )┃(≦ ▼ )

154 :デフォルトの名無しさん:05/03/09 21:18:53
           __________________
    (≦三)  /
  ┃. (#゚Д゚)< ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・。
  ┃(≦ ▼ ) | ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・。
  /. │━‖│ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・。
  /. │  ‖│ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・。
 └-┘⊃⊃ \__________________
    (≦三)   (≦三)   (≦三)   (≦三)
  ┃. (#゚Д゚).┃ (#゚Д゚) ┃ (#゚Д゚)┃ (#゚Д゚)
  ┃(≦ ▼ )┃(≦ ▼ )┃(≦▼ )┃(≦ ▼ )
      (≦三)   (≦三)   (≦三)   (≦三)
    ┃. (#゚Д゚).┃ (#゚Д゚).┃ (#゚Д゚)┃ (#゚Д゚)
    ┃(≦ ▼ )┃(≦ ▼ )┃(≦▼ )┃(≦ ▼ )

155 :デフォルトの名無しさん:05/03/09 21:19:31
           __________________
    (≦三)  /
  ┃. (#゚Д゚)< ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・。
  ┃(≦ ▼ ) | ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・。
  /. │━‖│ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・。
  /. │  ‖│ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・。
 └-┘⊃⊃ \__________________
    (≦三)   (≦三)   (≦三)   (≦三)
  ┃. (#゚Д゚).┃ (#゚Д゚) ┃ (#゚Д゚)┃ (#゚Д゚)
  ┃(≦ ▼ )┃(≦ ▼ )┃(≦▼ )┃(≦ ▼ )
      (≦三)   (≦三)   (≦三)   (≦三)
    ┃. (#゚Д゚).┃ (#゚Д゚).┃ (#゚Д゚)┃ (#゚Д゚)
    ┃(≦ ▼ )┃(≦ ▼ )┃(≦▼ )┃(≦ ▼ )

156 :デフォルトの名無しさん:05/03/09 21:37:13
おまたなめたい

157 :デフォルトの名無しさん:05/03/09 21:58:40
           __________________
    (≦三)  /
  ┃. (#゚Д゚)< 2chの神ひろぽんの名のもとに>>156
  ┃(≦ ▼ ) | 四系にする。
  /. │━‖│
  /. │  ‖│
 └-┘⊃⊃ \__________________
    (≦三)   (≦三)   (≦三)   (≦三)
  ┃. (#゚Д゚).┃ (#゚Д゚) ┃ (#゚Д゚)┃ (#゚Д゚)
  ┃(≦ ▼ )┃(≦ ▼ )┃(≦▼ )┃(≦ ▼ )
      (≦三)   (≦三)   (≦三)   (≦三)
    ┃. (#゚Д゚).┃ (#゚Д゚).┃ (#゚Д゚)┃ (#゚Д゚)
    ┃(≦ ▼ )┃(≦ ▼ )┃(≦▼ )┃(≦ ▼ )

158 :デフォルトの名無しさん:05/03/09 22:01:19
 

159 :デフォルトの名無しさん:05/03/09 22:04:34
おまんこぉおおおおおおおおおおおおおおおp

160 :デフォルトの名無しさん:05/03/09 22:29:14
おまたぁあああああああああああああ

161 :デフォルトの名無しさん:05/03/10 12:47:53





























 

162 :デフォルトの名無しさん:05/03/10 12:48:24
 

163 :デフォルトの名無しさん:05/03/10 13:41:09
STLについて語っていい?

164 :デフォルトの名無しさん:05/03/10 13:48:33
>>163
こちら、http://pc5.2ch.net/test/read.cgi/tech/1106527792/
もしくはチラシの裏にでも、どうぞ。

165 :デフォルトの名無しさん:05/03/10 13:50:06




















 

166 :デフォルトの名無しさん:05/03/10 13:51:06




















 










 

167 :デフォルトの名無しさん:05/03/10 13:53:50
>>164
STLに関してはここでいいのか?

168 :デフォルトの名無しさん:05/03/10 13:56:32
まんこ

169 :デフォルトの名無しさん:05/03/10 13:58:14
>>167
こちら、http://pc5.2ch.net/test/read.cgi/tech/1106527792/
もしくはチラシの裏にでも、どうぞ。

170 :デフォルトの名無しさん:05/03/10 14:39:51
まんこ

171 :デフォルトの名無しさん:05/03/10 14:48:20































 

172 :デフォルトの名無しさん:05/03/10 14:51:33
ところでSTLPort以外になんかPortableでいいSTL実装ないの?
SGIはSTLPortと一緒だから除外ね。newlibもウンコだから除外。

173 :デフォルトの名無しさん:05/03/10 14:53:27
172もウンコ

174 :デフォルトの名無しさん:05/03/10 14:54:06































 

175 :デフォルトの名無しさん:05/03/10 15:16:20
 

176 :デフォルトの名無しさん:05/03/10 15:23:56
スペースうんこ
 
 
  
  
   
   
    
   
   
  
  
 
 



177 :デフォルトの名無しさん:05/03/10 17:19:58
>>172
ttp://www.dinkumware.com/

178 :デフォルトの名無しさん:05/03/10 17:59:09
ここの嵐は何のためにやっているのかよくわからないのだが・・・

179 :デフォルトの名無しさん:05/03/10 18:01:05
>>178
1.愛と勇気のため
2.地位と名誉のため
3.喜びと快楽のため
さあ選べ。

180 :デフォルトの名無しさん:05/03/10 20:17:12
まんこ

181 :デフォルトの名無しさん:05/03/10 20:17:38
>>178
まんこのために決まってるだろ

182 :デフォルトの名無しさん:05/03/10 21:16:04
はるまんかいあわびもまんかい

183 :デフォルトの名無しさん:05/03/10 23:10:53
まんこ

184 :デフォルトの名無しさん:05/03/11 00:08:26
>>180-183
頭が悪いってよく人に言われるでしょ。

185 :デフォルトの名無しさん:05/03/11 00:09:48
>>184
まんこ

186 :デフォルトの名無しさん:05/03/11 00:10:29
このスレはまんこのスレです

187 :デフォルトの名無しさん:05/03/11 00:10:51
うんこもいいかな

188 :デフォルトの名無しさん:05/03/11 00:13:58
やっぱりまんこ

189 :デフォルトの名無しさん:05/03/11 00:40:33
まんこ

190 :デフォルトの名無しさん:05/03/11 00:44:19
おまたぁあああああああああああああああああああああああ

191 :デフォルトの名無しさん:05/03/11 09:44:08
まんこ

192 :デフォルトの名無しさん:05/03/11 19:03:46
おめこ

193 :デフォルトの名無しさん:05/03/11 19:17:56
プログラム界の長有名人のエビステーメーさんの書籍によると、
STLを使うことで、プログラムコードが100分の1になるそうです。

194 :デフォルトの名無しさん:05/03/11 19:19:05
100分の1?

195 :デフォルトの名無しさん:05/03/11 19:46:22
何であれてるの?

196 :デフォルトの名無しさん:05/03/11 19:50:42
まんこだから

197 :デフォルトの名無しさん:05/03/11 19:51:24
まんこ

198 :デフォルトの名無しさん:05/03/11 19:51:44
まんこ

199 :デフォルトの名無しさん:05/03/11 19:52:04
まんこ

200 :デフォルトの名無しさん:05/03/11 20:20:01
>>195
マジレスすると、以前C++&テンプレート関連のスレが
乱立していているので整理しようという話があって、
STLはC++スレで、それ以外の非標準テンプレートは
テンプレート総合スレで扱う、ってことになったのに、
それを不満に思う奴が勝手にこのスレ立てたから
反発を受けている。

201 :デフォルトの名無しさん:05/03/11 20:56:14
あげ

202 :デフォルトの名無しさん:05/03/11 20:58:57
あげまんこ

203 :デフォルトの名無しさん:05/03/11 20:59:34
あげたてすじ

204 :デフォルトの名無しさん:05/03/11 21:01:40
まんこ

205 :デフォルトの名無しさん:05/03/11 21:02:11
ちんこまんこ

206 :デフォルトの名無しさん:05/03/11 21:02:56
まんこ

207 :デフォルトの名無しさん:05/03/11 21:03:20
まんこ

208 :デフォルトの名無しさん:05/03/11 21:44:30
205はエバに乗った状態でセクースしろ。

209 :デフォルトの名無しさん:05/03/11 21:45:25
















いやだ。

210 :デフォルトの名無しさん:05/03/11 22:02:24
>>200
お釣りかえしといた

211 :デフォルトの名無しさん:05/03/11 22:04:57
205はエバに乗った状態でセクースしろ。

212 :デフォルトの名無しさん:05/03/11 22:15:49
まんこ

213 :デフォルトの名無しさん:05/03/11 22:16:34
まんこ

214 :デフォルトの名無しさん:05/03/11 22:16:59
まんこ

215 :デフォルトの名無しさん:05/03/12 00:47:19
まんこ

216 :デフォルトの名無しさん:05/03/12 04:33:59
>>200
みんな仲良くやろうよ

217 :デフォルトの名無しさん:05/03/12 10:31:55
>>216=>>1

まんこ


218 :デフォルトの名無しさん:05/03/12 10:34:29
>>216乱交パーティー!?age

219 :デフォルトの名無しさん:05/03/12 11:20:24
というかSTLについて聞きたくてSTL相談室というスレがあれば普通そこで聞くでしょ。


220 :デフォルトの名無しさん:05/03/12 11:29:02
ソース嫁


終わり

221 :デフォルトの名無しさん:05/03/12 11:37:18
まんこ

222 :デフォルトの名無しさん:05/03/12 18:36:10
やべえからあげる。

223 :デフォルトの名無しさん:05/03/12 19:57:34
まんこ

224 :デフォルトの名無しさん:05/03/12 21:25:21
>>219
だから何度も重複だ、と言っている。

…まあ stream I/O 訊いて来るアホの子もいてるわけだが。

225 :(゚Д゚):05/03/12 21:49:07
vfhfgbvcfsdfghjbhvgfdrytghjkbfgdfyhjjghf==

226 :デフォルトの名無しさん:05/03/12 22:18:24
米倉涼子のまんこ

227 :デフォルトの名無しさん:05/03/12 22:34:10
STLを使えない奴が暴れてるな w

228 :デフォルトの名無しさん:05/03/12 22:46:21
同性愛系のスレでは、ウザイ女のことをまんこって呼ぶんだよ。

229 :デフォルトの名無しさん:05/03/12 22:51:50
ホモスレ?ホモ板?またはゲイ?

230 :デフォルトの名無しさん:05/03/12 23:54:52
まんこ

231 :デフォルトの名無しさん:05/03/12 23:57:34
まんこ

232 :デフォルトの名無しさん:05/03/13 00:00:18
われめぇええええええええええええええええええええええええええ
毛の生えてない、われめぇええええええええええええええええええ

233 :デフォルトの名無しさん:05/03/13 00:00:47


234 :デフォルトの名無しさん:05/03/13 00:10:39
おまたぁああああああああああああああああああああああああ
ぴんくの、おまたぁあああああああああああああああああああ

235 :デフォルトの名無しさん:05/03/13 00:30:48
いとうまいこ可愛い

236 :デフォルトの名無しさん:05/03/13 04:33:17
このような状況で訊くのは忍びないけど
漏れもSTL専用スレとは区別してる口なのでここで。

multimap::equal_range で得られる同じキーを持つ両端のiteratorは
間の(もしくはequal_range::second)要素を削除した場合の
equal_range::secondはキチンと同一キーをもつ要素の終端を指している、
という保障はあるのでしょうか?

あと、こういうのはどこで調べるものなんでしょうか?

237 :デフォルトの名無しさん:05/03/13 05:36:48
日本語が変。


238 :デフォルトの名無しさん:05/03/13 05:57:25
>>236
multimap は Associative container である。
したがって 23.1.2(ttp://www.kuzbass.ru/docs/isocpp/lib-containers.html#lib.associative.reqmts) により、
・multimap は要素を削除しても、その要素以外を指すイテレータは無効にしない。(23.1.2 -8-)
・multimap はイテレータによって順にアクセスされる要素が常にソートされていることを保証している。(23.1.2 -9-)
ということが言えるので、 second 自身を削除した場合のみ気をつければ、保証されていると言える。

調べ者は本物の規格が一番だけど、微妙な違いがあるのを覚悟すれば、
↑のリンク先とか、http://www.sgi.com/tech/stl とかがお勧め。

239 :デフォルトの名無しさん:05/03/13 06:27:43
> 調べ者は本物の規格が一番だけど、

馬鹿みたいにたけーよな。


240 :デフォルトの名無しさん:05/03/13 07:20:05
>>237
確かに変ですね^^;

>>238
丁寧にありがとうございます
今後、極力それらドキュメントに目を通すよう努力します(`・ω・´)

241 :デフォルトの名無しさん:05/03/13 09:24:01
>>240
死ね

242 :デフォルトの名無しさん:05/03/13 11:36:27
まんこ

243 :デフォルトの名無しさん:05/03/13 11:59:37
>239
ttp://webstore.ansi.org/ansidocstore/product.asp?sku=INCITS%2FISO%2FIEC+14882-2003
$18 なら馬鹿みたいに高くはなかろ?

244 :デフォルトの名無しさん:05/03/13 12:04:06
>>243
ttp://webstore.ansi.org/ansidocstore/product.asp?sku=ISO%2FIEC+14882%3A2003
こっちのことじゃね

245 :デフォルトの名無しさん:05/03/13 13:16:08
まんこ

246 :デフォルトの名無しさん:05/03/13 14:13:47
なんだこの値段の差は……。0.01MB違う理由はなんだ。


247 :デフォルトの名無しさん:05/03/13 14:35:32
http://www.jisc.go.jp/
ここも忘れるな

248 :デフォルトの名無しさん:05/03/13 14:37:39
>>246
ライセンスかなぁ?

俺は $18 の方しか持ってないけど、これは PDF にライセンシーの名前や
注文番号、それと「Single User Only」の文字が埋め込まれてる。

249 :デフォルトの名無しさん:05/03/13 17:38:29
どっかのコピペ

・ANSI Store 版の表紙にはページ下部に...

Adopted by INCITS (InterNational Committee for Information
Technology Standards) as an American National Standard.

Date of ANSI Approval: 12/29/2003
...

 ...の記述がある。( ISO Store 版にはなし。 )

・ISO Store 版は Acrobat 3.0 以降で互換あり。
 ANSI Store 版は Acrobat 5.0 以降で互換あり。
( しおりがなかったのはこのせい? )

・ANSI Store 版はフォームフィールドの入力が許可されていないが、
 ISO Store 版は許可されている。
 ( まぁ、こんな違い、意味ねぇけど。 )

・ISO Store 版の暗号化レベルは「低(40-bit RC4)」。
 ANSI Store 版の暗号化レベルは「高(128-bit RC4)」。

...といったところで、まぁ、結論としては「 ISO、 氏ね。」

250 :デフォルトの名無しさん:05/03/13 19:56:26
ついでにJISいいかんげんにしろ。
値段も高いし、ダウンロード販売と冊子が同じ値段ってどういうことだ。

JIS X 3010:2003 プログラム言語C 14,280円
JIS X 3014:2003 プログラム言語C++ 17,325円


251 :デフォルトの名無しさん:05/03/13 21:54:50
> 値段も高いし、
JIS規格票の値段はページ数で決まるという仕様です。
高いのは諦めましょう(笑)

252 :デフォルトの名無しさん:05/03/13 23:09:27
>>251
アホみたいに余白を詰めてページ数を
減らしているのにはそういう事情があったのか。

253 :デフォルトの名無しさん:05/03/14 03:53:34
>250
一応、閲覧は無料で可能じゃないか。

254 :デフォルトの名無しさん:05/03/14 04:03:51
事実上ダウンロードも

255 :デフォルトの名無しさん:05/03/14 08:43:29
>>253
Cは見れるの知ってるけど、C++も見れるの?


256 :デフォルトの名無しさん:05/03/14 08:57:12
>>255
手元に両方とも落ちてきてるよ。

257 :デフォルトの名無しさん:05/03/14 10:18:15
C++の方、見ようとしたけど何度やっても
「ファイルが壊れています。修復できません」ってなる……。


258 :デフォルトの名無しさん:05/03/14 11:46:48
Readerを最新版にしろ

259 :デフォルトの名無しさん:05/03/14 15:04:41
イテレータが既にコンテナの末尾をさす可能性がある場合に、++しても安全でしょうか?
hoge.end()で得られるイテレータをインクリメントするとhoge.end()が得られたりしますか?



260 :デフォルトの名無しさん:05/03/14 15:26:03
>>259
だめ。

261 :デフォルトの名無しさん:05/03/14 15:56:37
そうですか……。素直にif文追加することにします。ありがとでした。


262 :デフォルトの名無しさん:05/03/15 06:21:26
AcrobatReader7.0超高速

263 :デフォルトの名無しさん:05/03/15 22:29:39
いまだに「Acrobat Reader」なんて呼んでる奴がいるのか。

264 :デフォルトの名無しさん:05/03/16 07:28:02
stl を使って csv ファイルの読み書きをする
サンプルコードってどこかにないでしょうか?


265 :デフォルトの名無しさん:05/03/16 11:09:08
おまんまんしたいよ・・・

266 :デフォルトの名無しさん:05/03/16 12:18:14
>>264
俺のHDDの中にある

267 :デフォルトの名無しさん:05/03/16 12:45:15
>>266
奇遇だな、漏れのUSBメモリの中にもあるよ。

268 :デフォルトの名無しさん:05/03/16 13:03:12
おまんこしたい

269 :デフォルトの名無しさん:05/03/16 13:04:57
>>268それはどういう意味だよ。
動詞なのか?

270 :デフォルトの名無しさん:05/03/16 14:36:34
肉まんしたいよ・・・

271 :デフォルトの名無しさん:05/03/16 23:26:13
大将板
ttp://yy13.kakiko.com/taisyo/
第1章〜ふんどしクオリティ〜

272 :デフォルトの名無しさん:05/03/17 02:56:13
>>265
そんなのわざわざstl使わなくても簡単にかけるぞ

273 :デフォルトの名無しさん:05/03/17 09:00:55
おまんこ相談膣

274 :デフォルトの名無しさん:05/03/17 21:02:34
template<class _T1, class _T2>
struct pair {

//型名の定義
typedef _T1 first_type; //値の型名の別名をfirst_typeとする
typedef _T2 second_type; //値の型名の別名をsecond_typeとする

//データ格納変数の宣言
_T1 first; //キー格納変数
_T2 second; //値格納変数

//コンストラクタの宣言と定義
pair()
: first( _T1() ), second( _T2() ) {}
pair( const _T1 & _V1, const _T2 & _V2 )
: first( _V1 ), second( _V2 ) {}
template<class U, class V> pair( const pair<U, V> & p )
: first( p.first ), second( p.second ) {}
};
pairのコンストラクタ1つ目で、firstとsecondのメンバイニシャライザが、プレースホルダの_T1()と_T2()で初期化されてるけど、この_T1(),_T2()の実態ってなに?

275 :デフォルトの名無しさん:05/03/17 21:14:12
firstとsecondのディフォルトコンストラクタ。

276 :デフォルトの名無しさん:05/03/17 21:17:27
>>274
T()と書くとT型の一時オブジェクトが作られる。スコープは式が終わるまで。
括弧の中にはコンストラクタへ渡す引数を並べる。何も書かなければ当然デフォルトコンストラクタが呼ばれる。

組み込み型に対しては引数が無ければ0クリアされ,有ればいわゆる関数形式キャストになる。

277 :デフォルトの名無しさん:05/03/18 00:38:00
>>274
pair() : first(),second() {}
これじゃダメなんだろうか?

278 :274:05/03/18 04:47:17
>>276
組み込み型のT()コンストラクタについて詳しい書籍ってご存知ですか?

279 :デフォルトの名無しさん:05/03/18 05:20:57
std::vector<MyClass> v;

こんな感じで使うと値渡しになってしまいますよね?
参照渡しの場合、removeなどとともに自動でdeleteしてくれるSTLってありますか?

280 :デフォルトの名無しさん:05/03/18 05:31:55
ない。



281 :デフォルトの名無しさん:05/03/18 05:55:24
>>279
こういう場合にそもそも参照渡しってできるんだっけ?


282 :デフォルトの名無しさん:05/03/18 06:08:22
ポインタのことじゃないか。C++タームとしての参照は不可能だろ。


283 :デフォルトの名無しさん:05/03/18 13:12:15
>>279
MyClassの代わりにboost::shared_ptr<MyClass>でもかちこんどけ。

284 :デフォルトの名無しさん:05/03/18 15:35:03
>278
組み込み型を空のカッコで初期化した場合,
ゼロを対象の型に変換した値で初期化されます.

>組み込み型のT()コンストラクタについて詳しい書籍
ISO14882といってみるテスト(書籍じゃないですが)

285 :デフォルトの名無しさん:05/03/18 22:48:25
>>284
> ISO14882といってみるテスト(書籍じゃないですが)
JISX3010:2003 とか。日本規格協会から 14,280円 で規格表を買えるよ。

http://www.webstore.jsa.or.jp/webstore/Com/FlowControl.jsp?lang=jp&bunsyoId=JIS+X+3010%3A2003&dantaiCd=JIS&status=1&pageNo=0


286 :デフォルトの名無しさん:05/03/18 22:51:01
ごめん、X3010 は C だった。C++ は JIS X 3014:2003 ね。

http://www.webstore.jsa.or.jp/webstore/Com/FlowControl.jsp?lang=jp&bunsyoId=JIS+X+3014%3A2003&dantaiCd=JIS&status=1&pageNo=1
和文冊子 17,325円 だそうで。

287 :デフォルトの名無しさん:05/03/19 00:56:09
だから閲覧すると漏れなく落っこち

288 :デフォルトの名無しさん:05/03/19 01:58:44
観覧用のテキスト検索できないけど、
売ってるやつはできるの?

289 :デフォルトの名無しさん:05/03/19 02:02:39
>>288
あんたみたいに日本語能力の乏しい人にはどっちみち検索は難しいだろ。

290 :デフォルトの名無しさん:05/03/20 00:40:39
>287
すこしいじればいんさt

291 :デフォルトの名無しさん:05/03/20 16:19:07
setの疑問なんだけど。
setのfindなどで取得したiteratorで、要素の変更が自由に行えるけど、
こんな事したら、せっかくのソート済みが滅茶苦茶になると思うのだが。

連想コンテナでは、イテレータでの要素の変更はNGですか?
それともソート順に影響しない変更はOK?

292 :デフォルトの名無しさん:05/03/20 16:26:34
Effective STLの22項がその話題だったな。

とりあえず、ソートに関わる要素はいじっちゃダメ。
ソートと関係無い部分は、どうしても変更したけりゃ注意してやれ。
と、そんな感じでは。

293 :デフォルトの名無しさん:05/03/20 17:08:46
>>292
どうも。
やはり、むやみな変更は駄目だね。
Effective STL読んでみる。

294 :デフォルトの名無しさん:05/03/20 17:15:09
>>291
あれ?setのキーはconstじゃないのか?
要素はソートと関係ないような・・・

295 :デフォルトの名無しさん:05/03/20 17:21:08
>>294
mapと混同してないか?

296 :デフォルトの名無しさん:05/03/20 17:29:48
>>295
う、そうだorz
でもそうなるとなおさら、constな希ガス。const_iteratorでなくてiteratorだったら、
コンパイルエラー出るんじゃないの?

297 :デフォルトの名無しさん:05/03/20 17:39:38
>>296
Effective STL持ってないのか?
std::map/std::multimapのキーは確かにconstだが、std::set/std::multisetのキーは
非constなのだ。だからiteratorでコンパイルが通ってしまう。

正しく変更するには、一度削除してからもう一度挿入するしか手がない。

298 :デフォルトの名無しさん:05/03/20 18:01:43
>297
標準としてはどちらでもいいようですよ。
ttp://www.cuj.com/documents/s=8002/cujcexp1810kreft/

299 :デフォルトの名無しさん:05/03/20 19:27:24
>>298
という事は、std::remove()などの削除系アルゴリズムをstd::setに対して
呼び出せる処理系と呼び出せない処理系が混在しているという事か。

移植性を重視するなら、constと決めつけてかかった方がいいみたいだね。

300 :デフォルトの名無しさん:05/03/20 19:36:29
gcc3.4.2(mingw)+STLport4.6.2でこんなコンパイルエラーが。
STLportはキーをconstとしているようだよママン。

C:/STLport-4.6.2/stlport/stl/_algo.h: In function `_OutputIter _STL::remove_copy(_InputIter, _InputIter, _OutputIter, const _Tp&)
[with _InputIter = _STL::_Rb_tree_iterator<int, _STL::_Const_traits<int> >, _OutputIter = _STL::_Rb_tree_iterator<int, _STL::_Const_traits<int> >, _Tp = int]':
C:/STLport-4.6.2/stlport/stl/_algo.h:274: instantiated from `_ForwardIter _STL::remove(_ForwardIter, _ForwardIter, const _Tp&)
[with _ForwardIter = _STL::_Rb_tree_iterator<int, _STL::_Const_traits<int> >, _Tp = int]'
C:\mingw\set_const1.cpp:12: instantiated from here
C:/STLport-4.6.2/stlport/stl/_algo.h:247: error: assignment of read-only location

Execution terminated

#include <set>
#include <algorithm>

int main()
{
 std::set<int> si;

 si.insert(10);
 si.insert(2);
 si.insert(4);

 std::remove(si.begin(), si.end(), 2);
}

301 :デフォルトの名無しさん:05/03/20 20:26:34
22項読んでたんだけどsetの移植性のためにconst_castを使うって話しがあって、悪い例に

EmpIDSet se; // typedef set<Employee, IDNumberLess> EmpIDSet;
Employee selectedID;
EmpIDSet::iterator i = se.find(selectedID);
if (i != se.end()) {
 static_cast<Employee>(*i).setTitle("Corporate Deity");
}

と書いては”いけない”と書いてある。何故かというと

if (i != se.end()) {
 Employee tempCopy(+i);
 tempCopy.setTitle("Corporate Deity");
}

と、等価であるから。
どうしていきなり一時オブジェクトが出てきたのか理由がわからないです。
教えてください。

302 :デフォルトの名無しさん:05/03/20 21:25:16
キャストしてるからじゃ

303 :デフォルトの名無しさん:05/03/20 21:34:00
>>301
〜その明示的変換の効果は、一時的変数tを宣言し初期化した上で、変換結果としてtを
使うことと同じである。
JIS X3014 5.2.9

実際、
string s = "asdf";
static_cast<string>(s).clear();
で、sは変わらないよ。
俺も初めて知った。

304 :デフォルトの名無しさん:05/03/20 22:06:12
参照を使えってことだよね?

305 :301:05/03/20 22:55:57
>>302-303
なるほど。
ありがd。
いつかはまるんだろうなぁorz

>>304
yes。

if (i != se.end()) {
 const_cast<Employee&>(*i).setTitle("Corporate Deity");
}
というのが正解みたい。

306 :デフォルトの名無しさん:05/03/21 00:51:48
>>291-299
ttp://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#103
23.1.2 -5- に "Keys in an associative container are immutable." と追加されるらしい。

どうしても変更したければ const_cast や mutable 使うべし。

現行の規格では変更できてしまう処理系もアリということなので、
>>291は使用しているコンパイラ(またはSTL実装)を晒せ。

307 :デフォルトの名無しさん:2005/03/21(月) 12:02:58
>291-299
Sunのコンパイラだと、5.0から5.1?になったときに非constあり->constのみに変わったよ。
STLはRawgue?とかいうとこの実装。
あと、cygwin+g++ 3.3.3だと、constのみのようだ。
ただし、_GLIBCPP_RESOLVE_LIB_DEFECTSをdefineすると非constも追加されるみたい。



308 :デフォルトの名無しさん:2005/03/21(月) 12:03:24
C++よりMLの方がいいよ。

309 :デフォルトの名無しさん:2005/03/21(月) 12:04:59
std::vector#operator[]ってのがあるんだね
C#でやたらイテレータとデリゲートがすげーみたいに言われてたけど
C++にもあるじゃん

もしかしてデリゲートと同じ機構を持つものもC++にあるの?

310 :デフォルトの名無しさん:2005/03/21(月) 12:49:54
こんにちは
質問なのですが、
STLで、

struct greater_record : binary_function<record,record,bool> {
bool operator()(const record& x, const record& y) const {
return x.name > y.name;
}
};

の、クラスgreater_recordの後の、「: binary_function<record,record,bool>」は何を意味してるのでしょうか?
あと、operator()の「()」の部分ですが、operatorには演算子しか指定できないと思ってました。なので、「()」はどういう意味をなすのでしょうか?

簡単に教えていただければ、あとは自分でGoogleを使い調べます。
申し訳ございませんが、宜しくお願いいたします。

311 :ヽ(´ー`)ノ ◆.ogCuANUcE :2005/03/21(月) 13:01:59
>>310
関数オブジェクトについて調べるといいよ。
オススメ ↓
ttp://www005.upp.so-net.ne.jp/episteme/html/stlprog/_04.html#fun_object

型固有の predicate を作るのはあまり関心しないなぁ。
比較演算子を定義して std::greater 使った方が良いと思われ。


312 :310:2005/03/21(月) 13:09:43
>>311
ありがとうございます。
助かります。

313 :デフォルトの名無しさん:2005/03/21(月) 13:12:44
C++よりMLの方がいいよ。

314 :310:2005/03/21(月) 13:15:03
これいいですね。
http://www005.upp.so-net.ne.jp/episteme/html/stlprog/

これを勉強しマスターすればSTLに関しては完璧になれますか?

315 :デフォルトの名無しさん:2005/03/21(月) 13:40:05
>>314
それ入門書。それ読んでスタート地点。

316 :310:2005/03/21(月) 13:43:42
>>315
そーなんですか・・・。
中級〜上級あたりを説明しているサイトで有名なものってありますか?

317 :デフォルトの名無しさん:2005/03/21(月) 13:47:17
STLに上級も中級もあるかよw
STL覚えたら自作のTLに移行するだけじゃん

318 :デフォルトの名無しさん:2005/03/21(月) 13:50:37
STLをマスターするに当たって、他人の書いたサイトで勉強しようというのが間違い。
中級以上を目指すなら複数のSTLの実装を読みつつ実際に自分で実装してみるのがいい。

319 :デフォルトの名無しさん:2005/03/21(月) 13:57:42
>>316
みんな30歳超えたプロの集まりだぞ
がんばって追いつけ!

320 :ヽ(´ー`)ノ ◆.ogCuANUcE :2005/03/21(月) 14:12:40
俺まだ学生(;゚Д゚)春休み

>>317-318
コンパイラの差異とか考え出すと面倒になってきて投げる。やってられん。

321 :デフォルトの名無しさん:2005/03/21(月) 17:48:12
>>309
"無ければ作れ"が原則。

322 :デフォルトの名無しさん:2005/03/21(月) 18:01:11
"作れば無けれ"がその基本原則

323 :デフォルトの名無しさん:2005/03/21(月) 18:26:42
ヽ(´ー`)ノ ◆.ogCuANUcE=東大生?

324 :デフォルトの名無しさん:2005/03/21(月) 21:09:23
>>310

STLを勉強するんだったら、Effective STL最強。
ttp://www.amazon.co.jp/exec/obidos/ASIN/4894714108/

金ないかもしれないけど、良書だからこそ、ケチらずに自分で金出して買うべし。
あとは、必読書スレも見た方がいい。
変な本を買うより、ここで推薦されている本は外れが少ない。

325 :デフォルトの名無しさん:2005/03/21(月) 21:53:23
>Effective STL―STLを効果的に使いこなす50の鉄則
>スコット メイヤーズ (著), Scott Meyers (原著), 細谷 昭 (翻訳)
>価格: ¥3,360 (税込)


>3,360



やすっ!(笑)

60 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)