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

सी ++ में एसटीडी ::वेक्टर और एसटीडी ::सरणी के बीच अंतर

वेक्टर और सरणी के बीच अंतर निम्नलिखित हैं -

  • वेक्टर तत्वों को संग्रहीत करने के लिए अनुक्रमिक कंटेनर है न कि अनुक्रमणिका आधारित।
  • सरणी एक ही प्रकार के तत्वों के एक निश्चित आकार के अनुक्रमिक संग्रह को संग्रहीत करता है और यह अनुक्रमणिका आधारित है।
  • वेक्टर प्रकृति में गतिशील है, इसलिए तत्वों को सम्मिलित करने के साथ आकार बढ़ता है।
  • चूंकि ऐरे का आकार निश्चित होता है, एक बार इनिशियलाइज़ करने के बाद उसका आकार नहीं बदला जा सकता है।
  • वेक्टर अधिक मेमोरी लेता है।
  • ऐरे मेमोरी कुशल डेटा संरचना है।
  • वेक्टर तत्वों तक पहुँचने में अधिक समय लेता है।
  • एरे ऐक्सेस एलिमेंट्स को उनके स्थान पर ध्यान दिए बिना निरंतर समय में ऐरे ऐक्सेस एलिमेंट्स को एक सन्निहित मेमोरी एलोकेशन में व्यवस्थित किया जाता है।

वेक्टर और सरणियों को निम्नलिखित सिंटैक्स के साथ घोषित किया जा सकता है -

Vector declaration:vector<datatype>array name;
Array declaration:type array_name[array_size];
Vector initialization:vector<datatype>array name={values};
Array initialization:datatype arrayname[arraysize] = {values};

std::vector:

उदाहरण कोड

#include <iostream>
#include <vector>
using namespace std;
int main() {
   vector<vector<int>>v{ { 4, 5, 3 }, { 2, 7, 6 }, { 3, 2, 1 ,10 } };
   cout<<"the 2D vector is:"<<endl;
   for (int i = 0; i < v.size(); i++) {
      for (int j = 0; j < v[i].size(); j++)
         cout << v[i][j] << " ";
         cout << endl;
   }
   return 0;
}

आउटपुट

the 2D vector is:
4 5 3
2 7 6
3 2 1 10

std::array:

उदाहरण कोड

#include<iostream>
#include<array>
using namespace std;

int main() {
   array<int,4>a = {10, 20, 30, 40};
   cout << "The size of array is : ";
   //size of the array using size()
   cout << a.size() << endl;
   //maximum no of elements of the array
   cout << "Maximum number of elements array can hold is : ";
   cout << a.max_size() << endl;
   // Printing array elements using at()
   cout << "The array elements are (using at()) : ";
   for ( int i=0; i<4; i++)
      cout << a.at(i) << " ";
      cout << endl;
      // Filling array with 1
      a.fill(1);
      // Displaying array after filling
      cout << "Array after filling operation is : ";
   for ( int i=0; i<4; i++)
      cout << a[i] << " ";
      return 0;
}

आउटपुट

The size of array is : 4
Maximum number of elements array can hold is : 4
The array elements are (using at()) : 10 20 30 40
Array after filling operation is : 1 1 1 1

  1. C++ स्ट्रिंग स्थिरांक और वर्ण स्थिरांक के बीच अंतर

    C++ में, सिंगल कोट्स में एक कैरेक्टर एक कैरेक्टर लिटरल होता है। यह चार प्रकार का है। उदाहरण के लिए, ए ASCII आधारित सिस्टम पर 97 के मान के साथ चार प्रकार का है। दोहरे उद्धरण चिह्नों में एक वर्ण या वर्णों की एक स्ट्रिंग एक स्ट्रिंग अक्षर का प्रतिनिधित्व करती है। यह प्रकार का है const char[] और स्ट्रि

  1. C++ में रिलेशनल ऑपरेटर(==) और std::string::compare() के बीच अंतर

    रिलेशनल ऑपरेटर ==और std::string::compare() के बीच केवल एक अंतर है। वह वापसी मूल्य है। आंतरिक रूप से, string::operator==() string::compare() using का उपयोग कर रहा है रिलेशनल ऑपरेटर(==) एक बूलियन लौटाता है जो यह दर्शाता है कि 2 तार बराबर हैं या नहीं, जबकि तुलना एक पूर्णांक देता है जो दर्शाता है कि तार

  1. सी++ में एंडल और \n के बीच तुलना

    \n एक नई लाइन को आउटपुट करता है (उपयुक्त प्लेटफॉर्म-विशिष्ट प्रतिनिधित्व में, इसलिए यह विंडोज़ पर \r\n उत्पन्न करता है), लेकिन std::endl करता है वही और धारा को फ्लश करता है। आम तौर पर, आपको तुरंत स्ट्रीम को फ्लश करने की आवश्यकता नहीं होती है और इससे आपको केवल प्रदर्शन खर्च करना पड़ेगा, इसलिए, अधिकां