
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で質問しましょう!
似たような質問が見つかりました
- PHP php エラー 2 2022/10/23 16:43
- PHP php エラー 3 2022/11/18 23:32
- MySQL 次の時間帯の勝率の合計を求めるSQL文 1 2023/07/04 17:12
- その他(プログラミング・Web制作) VSCodeで上書きモードにならない 1 2022/10/26 12:10
- C言語・C++・C# Cのdoubleの浮動小数点表示について 3 2023/04/17 13:14
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- Excel(エクセル) EXCEL マクロで行を挿入して貼り付けようとするとエラーになる。 2 2022/05/24 09:43
- MySQL 下の画像はSQLの4大命令の性質をまとめたものであるらしいです UPDATE INSERT DELE 1 2023/06/07 15:36
- Visual Basic(VBA) Excelマクロ Application.Run 5 2023/06/17 15:16
- PHP プログラムコードを入力する場合改行してもいいですか? 2 2022/10/02 16:05
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
複数桁10進数の*桁目だけを抽出...
-
「指定されたキャストは有効で...
-
【C++】関数ポインタの使い方
-
C言語での引数の省略方法
-
構造体の勉強中です 合計点の高...
-
#define _CRT_SECURE_NO_WARNIN...
-
(int *)の意味
-
実数の整数部,小数部の取得
-
入力された数字を大きい順に並...
-
Listの<Label>と<PictureBox>
-
int型の変数値をバイト列として...
-
fprintfでの文字化け
-
C言語でDxlibを使って3x3の奇数...
-
比較回数と交換回数表示について
-
C言語について教えてください。
-
ファイルから読みこむ方法
-
C言語初心者です、、、お助けく...
-
配列変数のポインターが勝手に...
-
ポインタによる関数への配列渡し
-
C言語、行列の積を求めるプログ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「指定されたキャストは有効で...
-
C言語での引数の省略方法
-
複数桁10進数の*桁目だけを抽出...
-
C言語 エラーの原因がわからな...
-
#define _CRT_SECURE_NO_WARNIN...
-
ラップ関数とはどんなものですか?
-
【C++】関数ポインタの使い方
-
実数の整数部,小数部の取得
-
int型の変数値をバイト列として...
-
std::set<int> で、ある値が何...
-
PowerShellがうまくいかない
-
(int *)の意味
-
CStringの配列要素を関数で受け...
-
ColorをRGBで指定する方法
-
「{ } で囲むだけ」は正しい?
-
acceptをalarmでタイムアウトさ...
-
if と配列の組み合わせ
-
read関数をノンブロッキングで...
-
(マルチスレッド)_beginthrea...
-
int16_t の _t は何?
おすすめ情報