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進数の*桁目だけを抽出...
-
std::set<int> で、ある値が何...
-
「指定されたキャストは有効で...
-
数字列を3桁ごとにカンマで区切...
-
比較回数と交換回数表示について
-
C言語 エラーの原因がわからな...
-
#define _CRT_SECURE_NO_WARNIN...
-
実数の整数部,小数部の取得
-
c言語
-
C言語
-
卒業研究でよく分からないとこ...
-
main関数以外での結果の表示?
-
各桁の和を返す関数
-
C言語での引数の省略方法
-
(int *)の意味
-
C++でvectorにテキストファイル...
-
if文について
-
プログラミング c言語
-
マルチスレッドでバグが発生します
-
【C++】関数ポインタの使い方
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「指定されたキャストは有効で...
-
C言語での引数の省略方法
-
複数桁10進数の*桁目だけを抽出...
-
#define _CRT_SECURE_NO_WARNIN...
-
ラップ関数とはどんなものですか?
-
卒業研究でよく分からないとこ...
-
【C++】関数ポインタの使い方
-
実数の整数部,小数部の取得
-
std::set<int> で、ある値が何...
-
C言語 エラーの原因がわからな...
-
c言語
-
system関数がうまくいかない
-
C++でvectorにテキストファイル...
-
acceptをalarmでタイムアウトさ...
-
if と配列の組み合わせ
-
return 1L
-
「{ } で囲むだけ」は正しい?
-
(マルチスレッド)_beginthrea...
-
PowerShellがうまくいかない
-
このプログラミング誰か教えて...
おすすめ情報