Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ STL का उपयोग करके सॉर्टेड एरे में फ्लोर और सील ढूंढना

इस ट्यूटोरियल में हम C++ STL का उपयोग करके सॉर्टेड एरे में फ्लोर और सील ढूंढने के तरीके पर चर्चा करेंगे।

सॉर्टेड एरे का फ्लोर और सील ढूंढने के लिए हम क्रमशः lower_bound() और upper_bound() फ़ंक्शन्स का उपयोग करेंगे।

उदाहरण

#include <bits/stdc++.h>
using namespace std;

// दिए गए एरे का फ्लोर ढूंढना
void printFloor(int arr[], int n1, int findFloor[], int n2) {
    int low;
    cout << "Floor : ";
    for (int i = 0; i < n2; i++) {
        low = (lower_bound(arr, arr + n1, findFloor[i]) - arr);
        if (arr[low] > findFloor[i])
            cout << arr[low - 1] << " ";
        else
            cout << arr[low] << " ";
    }
    cout << endl;
}

// दिए गए एरे का सील ढूंढना
void printCeil(int arr[], int n1, int findCeil[], int n2) {
    int up;
    cout << "Ceil : ";
    for (int i = 0; i < n2; i++) {
        up = (upper_bound(arr, arr + n1, findCeil[i]) - arr);
        if (arr[up] > findCeil[i] && arr[up - 1] == findCeil[i]) {
            cout << arr[up - 1] << " ";
        } else {
            cout << arr[up] << " ";
        }
    }
    cout << endl;
}

int main() {
    int arr[] = {1, 2, 4, 7, 11, 12, 23, 30, 32};
    int n1 = sizeof(arr) / sizeof(arr[0]);
    cout << "Original Array: ";
    for (unsigned int i = 0; i < n1; i++)
        cout << " " << arr[i];
    cout << "\n";
    
    int find[] = {1, 3, 5, 7, 20, 24};
    int n2 = sizeof(find) / sizeof(find[0]);
    cout << "Values: ";
    for (unsigned int i = 0; i < n2; i++)
        cout << find[i] << " ";
    cout << "\n";
    
    printFloor(arr, n1, find, n2);
    printCeil(arr, n1, find, n2);
    return 0;
}

आउटपुट

Original Array: 1 2 4 7 11 12 23 30 32
Values: 1 3 5 7 20 24
Floor : 1 2 4 7 12 23
Ceil : 1 4 7 7 23 30
  1. - C++ STL में array::fill() और array::swap()

    std::array में fill() और swap() इस खंड में हम देखेंगे कि C++ STL में array::fill() और array::swap() का उपयोग क्या है। array::fill() array::fill() फंक्शन का उपयोग सरणी को किसी निर्दिष्ट मान से भरने के लिए किया जाता है। सिंटैक्स array.fill(value); उदाहरण #include <iostream> #include <arra

  1. - C++ STL का उपयोग करके ऐरे का गुणनफल

    यह ऐरे गुणनफल ज्ञात करने के लिए C++ प्रोग्राम का एक उदाहरण है। एल्गोरिदम Begin ऐरे के मान इनिशियलाइज़ करें। ऐरे का गुणनफल लौटाने के लिए उपयोगकर्ता परिभाषित फंक्शन accumulate को कॉल करें। समाधान प्रिंट करें। End. उदाहरण कोड #include <iostream> #include <numeric> using names

  1. - C++ में सील (ceil) और फ्लोर (floor) फ़ंक्शंस

    ceil फ़ंक्शन दिए गए मान के बराबर या उससे बड़ा सबसे छोटा पूर्णांक मान लौटाता है। <cmath> हेडर में घोषित। सिंगल पैरामीटर लेता है (double/float/long double)। सिंटैक्स double ceil(double x); float ceil(float x); उदाहरण #include <iostream> #include <cmath> using namespace std; int m