0
私はいくつかのダブルベクトル値が設定されたベクトル配列を持っています。 2.0より下の数字をすべて出力したい。私の制限は、私はstd::lower_bound()
を使用する必要があります。これはどうすればできますか?ここでは最小限の作業コードを扱っていますが、単一の値しか得られません:std :: lower_bound()を使用した特定の値以下の要素の範囲を印刷
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
const double data[] = { 5.3, 9.2, 7.5, 6.9, 4.5 };
const int dataCount = sizeof(data)/sizeof(data[0]);
vector<double> vec(data, data + dataCount);
sort(vec.begin(), vec.end());
auto less2 = lower_bound(vec.begin(), vec.end(), 2.0);
auto less4 = lower_bound(vec.begin(), vec.end(), 4.0);
auto less6 = lower_bound(vec.begin(), vec.end(), 6.0);
cout << "\nLess than 2.0 : " << *less2 << endl << "Less than 4.0 : " << *less4 << endl << "Less than 6.0 : " << *less6 << endl;
return 0;
}
よろしくお願いします。 cppreference/lower_boundから
範囲を使用するようにソートする 'のstd :: LOWER_BOUNDを必要とします'正しく。 – PaulMcKenzie
@PaulMcKenzie私は間違ってそのビットを編集してしまいました。 –