У меня есть векторный массив, который заполнен некоторыми значениями двойного вектора. Я хочу напечатать все цифры ниже 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;
}
С уважением.
диапазон должен быть отсортирован использовать 'зЬй :: LOWER_BOUND 'правильно. – PaulMcKenzie
@PaulMcKenzie Я ошибочно отредактировал этот бит, просто вернул его. –