掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
stlにおけるアルゴリズムの使い方 (ID:72724)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> とりあえずlower_boundの検索基準となる関数オブジェクト(であってるかな)の作り方や使い方をお教えいただけたらと思います。 #include <algorithm> #include <vector> #include <string> #include <iostream> using namespace std; /* 果物を価格の順に並べたとき、200円のリンゴはどこに納まるか */ struct fruit { string name; int price; fruit(string n, int p) : name(n), price(p) {} }; int main() { vector<fruit> fruits; fruits.push_back(fruit("すいか", 500)); fruits.push_back(fruit("いちご", 400)); fruits.push_back(fruit("みかん", 100)); fruits.push_back(fruit("メロン", 800)); fruits.push_back(fruit("バナナ", 150)); // 価格順に並べるための比較関数オブジェクト auto comp = [](const fruit& x, const fruit& y) { return x.price < y.price; }; // coutにfruitを書く関数オブジェクト auto print = [](const fruit& f) { cout << f.name << '(' << f.price << ") ";}; // 価格順に並べ、 sort(fruits.begin(), fruits.end(), comp); // リンゴの位置を求める fruit target("リンゴ",200); auto position = lower_bound(fruits.begin(), fruits.end(), target, comp); for_each( fruits.begin(), position, print); cout << "の次に "; print(target); cout << "そして "; for_each( position, fruits.end(), print); }
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.