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

C++ STL में array::get() फंक्शन


std::array के लिए get() फंक्शन

इस खंड में हम C++ STL में सरणी के get() फंक्शन को देखेंगे। यह फंक्शन सरणी कंटेनर के i-वें तत्व को प्राप्त करने के लिए उपयोग किया जाता है। सिंटैक्स इस प्रकार है:

सिंटैक्स

get<I>(array_name)

यह फंक्शन दो अनिवार्य पैरामीटर लेता है। पहला इंडेक्स पैरामीटर है (टेम्पलेट पैरामीटर के रूप में)। यह सरणी की i-वीं स्थिति को इंगित करने के लिए उपयोग किया जाता है। दूसरा आर्गुमेंट array_name है। यह वास्तविक सरणी है जिससे i-वां तत्व लिया जाएगा। यह फंक्शन i-वां तत्व लौटाता है।

उदाहरण

#include <iostream>
#include <array>
#include <tuple>  // get() के लिए आवश्यक
using namespace std;

int main() {
    array<int, 10> arr = {0, 11, 22, 33, 44, 55, 66, 77, 88, 99};

    cout << "1st element: " << get<0>(arr) << endl;
    cout << "6th element: " << get<5>(arr) << endl;
    cout << "8th element: " << get<7>(arr) << endl;
    cout << "10th element: " << get<9>(arr) << endl;

    // get() का उपयोग टपल-जैसे एक्सेस के लिए भी किया जाता है
    array<double, 3> point = {1.5, 2.5, 3.5};
    cout << "X: " << get<0>(point) << ", Y: " << get<1>(point) << ", Z: " << get<2>(point);

    return 0;
}

आउटपुट

1st element: 0
6th element: 55
8th element: 77
10th element: 99
X: 1.5, Y: 2.5, Z: 3.5

महत्वपूर्ण बिंदु

  • get<I>(arr) एक फ्री फंक्शन है, मेंबर फंक्शन नहीं
  • इंडेक्स I एक कंपाइल-टाइम कॉन्स्टेंट होना चाहिए (टेम्पलेट पैरामीटर)
  • <tuple> या <utility> हेडर की आवश्यकता होती है
  • std::tuple, std::pair, std::array के लिए काम करता है
  • रिटर्न प्रकार: रेफरेंस (lvalue के लिए), कॉन्स्ट रेफरेंस (const lvalue के लिए), rvalue रेफरेंस (rvalue के लिए)
  • बाउंड्स चेकिंग नहीं - आउट-ऑफ-बाउंड्स अपरिभाषित व्यवहार है

मेंबर फंक्शन at() के साथ तुलना

विशेषता get<I>(arr) arr.at(i)
इंडेक्स प्रकार कंपाइल-टाइम (टेम्पलेट) रनटाइम
बाउंड्स चेकिंग नहीं हां (out_of_range फेंकता है)
प्रदर्शन थोड़ा तेज़ चेक के कारण थोड़ा धीमा
उपयोग मामला कंपाइल-टाइम ज्ञात इंडेक्स रनटाइम इंडेक्स

संरचित बाइंडिंग (C++17) के साथ उपयोग

array<int, 3> arr = {10, 20, 30};
auto [x, y, z] = arr;  // C++17 संरचित बाइंडिंग
cout << x << " " << y << " " << z;  // 10 20 30
  1. - C++ STL में atanh() फ़ंक्शन

    atanh() फ़ंक्शन atanh() फ़ंक्शन आर्क हाइपरबोलिक टैंजेंट (व्युत्क्रम हाइपरबोलिक टैंजेंट) लौटाता है। <cmath> हेडर में परिभाषित (C++11 से)। सिंटैक्स atanh(var) पैरामीटर: var - float, double, या long double। मान -1 और 1 के बीच होना चाहिए (अनन्य)। वापसी मान आर्क हाइपरबोलिक टैंजेंट मान (रेडियन मे

  1. - C++ STL में cosh() फ़ंक्शन

    cosh() फ़ंक्शन cosh() फ़ंक्शन दिए गए कोण (रेडियन में) का हाइपरबोलिक कोसाइन लौटाता है। <cmath> हेडर में परिभाषित। सिंटैक्स cosh(var) पैरामीटर: var - float, double, या long double। वापसी मान हाइपरबोलिक कोसाइन मान, सीमा: [1, ∞)। उदाहरण 1: रेडियन इनपुट #include <iostream> #include <cm

  1. - C++ STL में sinh() फ़ंक्शन

    sinh() फ़ंक्शन sinh() फ़ंक्शन दिए गए कोण (रेडियन में) का हाइपरबोलिक साइन लौटाता है। <cmath> हेडर में परिभाषित। सिंटैक्स sinh(var) पैरामीटर: var - float, double, या long double। वापसी मान हाइपरबोलिक साइन मान, सीमा: (-∞, ∞)। उदाहरण 1: रेडियन इनपुट #include <iostream> #include <cmath