【C++】STL(Standard Template Library)相談室 8
at TECH
[前50を表示]
950:デフォルトの名無しさん
08/02/24 14:47:46
vector に data が追加されたり、
何で無かったんだ? って機能が色々追加されてるみたいだね。
951:デフォルトの名無しさん
08/02/24 14:48:12
そういえば規格の改訂で copy_if() が追加されないのはなぜなんだぜ?
952:デフォルトの名無しさん
08/02/24 14:54:32
最新ドラフト(これ、最終ドラフトだっけ?)にも載ってないな。
953:デフォルトの名無しさん
08/02/24 14:55:44
今公開されてる最新は n2521.pdf のはず。無いな。
954:デフォルトの名無しさん
08/02/24 14:57:21
禿が10年越しの天丼ねらってる、とか?
955:デフォルトの名無しさん
08/02/24 14:59:55
質問失礼します。。
struct ST{
int n;
};
vector<ST> v;
set<ST> s;
int main(){
ST x={0};
v.push_back(x);
vector<ST>::iterator itv=v.begin();
itv->n++;
s.insert(x);
set<ST>::iterator its=s.begin();
its->n++;
}
のようにすると、its->n++;の行で
error: increment of data-member ‘ST::n’ in read-only structure
と出るのですがvectorで出来てsetで出来ないのはなぜでしょうか?
956:デフォルトの名無しさん
08/02/24 15:03:57
今すぐsetのイテレータタグを調べるんだ
957:デフォルトの名無しさん
08/02/24 15:04:24
ごめんnの方だったのね
958:デフォルトの名無しさん
08/02/24 15:04:44
>>955
set は常にソートされた並びを保っている必要があるから。
959:955
08/02/24 15:17:04
>>956-958さん
iterator経由で勝手に中身を変えられたら困るということは、
setとmapだけの例外扱いなのですか?
イテレータタグというのは初見なのでちょっと調べてみます。
960:デフォルトの名無しさん
08/02/24 15:28:50
map は second の方は変えれる。
961:デフォルトの名無しさん
08/02/24 15:28:54
>>959
map の場合は value_type である pair の first がソートキーなので、これは
書き換えられないように const が付いてる。 second は順序に関係ないので
書き換えてもいい。
962:955
08/02/24 15:31:13
>>960,961さん
なるほど、そうなっているのですね。
よく分かりました、どうもありがとうございました。
963:デフォルトの名無しさん
08/02/24 15:43:02
compareが感知しないメンバなら、mutable付けていじることはできるけどね。
964:デフォルトの名無しさん
08/02/24 16:01:24
まぁそれは奥の手ということでw
965:デフォルトの名無しさん
08/02/25 14:04:12
ファイルに簡単に新規作成、追記ができる方法ありますか?
ofstreamって、bad()とかfail()とか使いにくい。
966:デフォルトの名無しさん
08/02/25 14:18:47
ofstream.exceptions(badbit | failbit);
ってやっとけばいちいちチェックしなくても例外吐いてくれると思う
それが使いやすいかどうかはわからんが…
967:965
08/02/25 14:25:43
サンクス>>966
968:デフォルトの名無しさん
08/02/25 16:54:00
そんな機能があったとは
969:デフォルトの名無しさん
08/02/25 17:08:09
そういえばostreamのfail()が真になる事ってあるの?
970:デフォルトの名無しさん
08/02/25 17:24:02
>>920
>file_range
ずっと見てても分からないんですが、file_rangeって何ですか?
971:デフォルトの名無しさん
08/02/25 17:29:12
ファイルの先頭から末尾の一つ後ろまでを指すイテレータのペアみたいなもん
972:デフォルトの名無しさん
08/02/25 17:30:41
使い方キボン
973:デフォルトの名無しさん
08/02/25 18:12:11
複数のファイルがあって、それがローデータだったり、テーブルデータだったりします。
複数のファイルを混在させずに簡単にロードしてしまうクラスが欲しいのですが、どんな実装になりますか?
974:デフォルトの名無しさん
08/02/25 18:13:10
>>972
コンストラクタで開いたら後はただのRange。
URLリンク(p-stade.svn.sourceforge.net)
URLリンク(p-stade.sourceforge.net)
Range自体はここでも見て。
URLリンク(www.kmonos.net)
975:デフォルトの名無しさん
08/02/25 18:16:01
さんks>>974
boostなんですね。STLに昇格するまで待ってようかなぁ。
ちょっと気後れしてしまうorz
976:デフォルトの名無しさん
08/02/26 08:54:04
973もヨロ!
977:デフォルトの名無しさん
08/02/26 08:59:15
>>973
ローデータ、テーブルデータ、ファイルを混在、簡単に、ロード
これだけ曖昧な言葉を並んでるとさすがに意味がわからん。
978:デフォルトの名無しさん
08/02/26 11:28:42
いや、だからメモリにロードしたいけど、
ファイルの種類が増えるたび書き換えするのは面倒なので、
ポケットみたいにどんどんファイル(ファイル名)を入れていくとその中でメモリになってる、みたいな。
979:デフォルトの名無しさん
08/02/26 12:01:54
>>978
// ちょっとエスパーにチャレンジしてみたい気分になった
// こうですか?
#include <vector>
#include <map>
#include <string>
#include <istream>
#include <iterator>
#include <fstream>
#include <cstddef>
#include <exception>
#include <iostream>
typedef std::vector<char> memory_type;
class pocket {
std::map<std::string, memory_type> naka;
public:
void ireru(std::string const& filename) {
std::ifstream file(filename.c_str());
file.exceptions(std::ios::badbit | std::ios::failbit);
naka[filename].assign(std::istreambuf_iterator<char>(file)
, std::istreambuf_iterator<char>());
}
};
int main(int argc, char* argv[]) {
try {
pocket pocket;
for (int i = 1; i < argc; ++i) { pocket.ireru(argv[i]); }
return EXIT_SUCCESS;
}
catch (std::exception const& e) { std::cerr << e.what() << std::endl; return EXIT_FAILURE; }
}
980:デフォルトの名無しさん
08/02/26 12:18:03
乞食は消えろ
981:デフォルトの名無しさん
08/02/26 12:25:50
さて埋めるか。
982:978
08/02/26 12:58:13
サンks>>979
そのまま使ってみます。
でも、ireruメソッドはメソッド名変えるけど。
class pocketもclass memoryPocketの方が良いかなぁ?
983:デフォルトの名無しさん
08/02/26 14:12:22
978がアホすぎて吹いた
984:デフォルトの名無しさん
08/02/26 14:15:27
吹いても良いから、自分はどーゆーふーに作ってるか書けお。
985:デフォルトの名無しさん
08/02/26 14:24:08
スレタイに「初心者」か「宿題」が付いてるスレへ行ってくれ。
マジで邪魔。
986:デフォルトの名無しさん
08/02/26 14:29:55
>985
おま、ふよー
987:デフォルトの名無しさん
08/02/26 15:16:46
>>985
おまえだって大したことはないだろ
988:デフォルトの名無しさん
08/02/26 16:42:30
次スレマダー?
989:デフォルトの名無しさん
08/02/26 18:44:25
邪魔っていうか、ゴミだよね。
なんでこのスレ見てるんだろう。
990:デフォルトの名無しさん
08/02/26 19:03:06
リアルで同じ事言われてここに辿り着いたんだろう
991:デフォルトの名無しさん
08/02/26 20:47:50
ジエンオツ
992:デフォルトの名無しさん
08/02/26 21:41:38
ということにしておこうか:-)
993:デフォルトの名無しさん
08/02/26 23:55:52
次スレ
スレリンク(tech板)
994:デフォルトの名無しさん
08/02/27 01:16:16
あれ?あ、そういうこと・・・
995:デフォルトの名無しさん
08/02/27 01:17:38
STLスレはいらんという事?
996:デフォルトの名無しさん
08/02/27 01:25:47
まぁ毎度のことだな。
こっちが二ヶ月で 1000 。
あっちが一月半で 800 。
あわせると、だいたい一月でちょうど 1000 か。
997:デフォルトの名無しさん
08/02/27 02:03:52
【C++】STL(Standard Template Library)相談室 9
スレリンク(tech板)
998:デフォルトの名無しさん
08/02/27 02:04:35
【C++】STL(Standard Template Library)相談室 7
スレリンク(tech板)
【C++】STL(Standard Template Library)相談室 6
スレリンク(tech板)
【C++】STL(Standard Template Library)相談室 5
スレリンク(tech板)
【C++】STL(Standard Template Library)相談室 ;4
スレリンク(tech板)
【C++】STL(Standard Template Library)相談室 3
スレリンク(tech板)
【C++】STL(Standard Template Library)相談室 2
スレリンク(tech板)
【C++】STL(Standard Template Library)相談室
スレリンク(tech板)
999:デフォルトの名無しさん
08/02/27 02:07:03
新スレからの誤爆とは珍しい。
1000:デフォルトの名無しさん
08/02/27 02:08:40
次すれ
スレリンク(tech板)
1001:1001
Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4827日前に更新/208 KB
担当:undef