
No.1ベストアンサー
- 回答日時:
二分木の仕組み上、ルートから見ていかないとわかりませんよね?
int cnt;
std::set<int>::iterator it;
for( it = s.begin() , cnt = 1 ; it != s.end() ; ++it , cnt++ ){
if ( *it == 5 ){
std::cout << cnt << "番目" << std::endl;
}
}
とする必要があります。
>s.find(5)-s.begin();
これは無理です。
findもbeginもsetのiterator
が戻り値です。
vector等ではiteratorに
マイナス演算子が定義されている為以下のような記述が可能なのです。
std::vector<int> v;
int cnt = v.end()-v.begin();
setのiteratorにマイナス演算子は定義されていません。
(インクリメント++やデクリメント--は定義されています。)
>二分木の仕組み上、ルートから見ていかないとわかりませんよね?
やっぱそうですか....
操作を何回も繰り返して行いたいので、これ意外の方法があれば、と思った
のですが・・・
そもそも set 使うことが良くないのかとも思ってきました.
No.3
- 回答日時:
std::set の実装が二分木であろうと、公開されたインターフェース以外を仮定してコードを書いてはいけません。
どうしても std::set が使いたいなら
count_if( s.begin(), s.end(), bind2nd( less_equal<int>(), 5 ) )
とかかな?
>std::set の実装が二分木であろうと、公開されたインターフェース以外を仮定してコードを書いてはいけません。
そうかもしれないです。
この操作を何回も行いたいので、できれば O(1) で知りたかったのですが。
そうすると set を使うのはあまり良くないのかも、とも思ってきました。
ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
C言語 配列の長さの上限
C言語・C++・C#
-
C++のfor文について
C言語・C++・C#
-
2番目の最大値を求める
C言語・C++・C#
-
-
4
n番目に大きい数を求めるアルゴリズム(C言語)
C言語・C++・C#
-
5
python エラー
その他(プログラミング・Web制作)
-
6
メモリのセグメント違反の解決方法を教えてください。
C言語・C++・C#
-
7
「年次」と「年時」に使い方について
日本語
-
8
C言語において、 配列要素をひとつずつ前にずらすコード
C言語・C++・C#
-
9
C言語 エラーの原因がわからないので,見てほしいです
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語での引数の省略方法
-
複数桁10進数の*桁目だけを抽出...
-
(マルチスレッド)_beginthrea...
-
「指定されたキャストは有効で...
-
if と配列の組み合わせ
-
ラップ関数とはどんなものですか?
-
#define _CRT_SECURE_NO_WARNIN...
-
C言語 エラーの原因がわからな...
-
任意の文字列のアルファベット...
-
return 1L
-
【C++】関数ポインタの使い方
-
式は定数値が必要です」という...
-
read関数をノンブロッキングで...
-
実数の整数部,小数部の取得
-
C言語での奇数の和
-
C言語で分からないところがあり...
-
double型の値を、一桁ずつint型...
-
DLLをGetProcAddress()で実行で...
-
課題でつまってます・・・
-
ColorをRGBで指定する方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「指定されたキャストは有効で...
-
C言語での引数の省略方法
-
複数桁10進数の*桁目だけを抽出...
-
#define _CRT_SECURE_NO_WARNIN...
-
C言語 エラーの原因がわからな...
-
【C++】関数ポインタの使い方
-
if と配列の組み合わせ
-
変数名を引数として渡す、アド...
-
ラップ関数とはどんなものですか?
-
数字列を3桁ごとにカンマで区切...
-
実数の整数部,小数部の取得
-
因数分解を行うプログラムについて
-
(int *)の意味
-
C言語での奇数の和
-
system関数がうまくいかない
-
c言語の配列を使ってサイコロを...
-
シグマ公式・・・C言語
-
read関数をノンブロッキングで...
-
構造体の勉強中です 合計点の高...
-
式は定数値が必要です」という...
おすすめ情報