क्या vector.erase वेक्टर ऑब्जेक्ट का आकार बदलता है ताकि मैं vector.size() के साथ कम आकार को माप सकूं?

उदाहरण के लिए;

vector<int> v(5);
v = {1,2,3,4,5};

और मैं 4 by हटाना चाहता हूँ;

v.erase(v.begin()+4);

क्या मेरी सदिश वस्तु v का आकार अब 4 है। दूसरे शब्दों में इस ऑपरेशन के बाद v.size() == 4 है?

4
Kishaan92 2 अक्टूबर 2016, 16:31
6
बस इसे आज़माएं या डॉक्स पढ़ें।
 – 
Baum mit Augen
2 अक्टूबर 2016, 16:34
बीटीडब्ल्यू।, आकार और क्षमता को भ्रमित न करें।
 – 
deviantfan
2 अक्टूबर 2016, 16:34
1
व्हेट द .size() घटता है या नहीं।
 – 
Kishaan92
2 अक्टूबर 2016, 16:40

1 उत्तर

सबसे बढ़िया उत्तर

हां, जैसे-जैसे आप तत्वों को मिटाते हैं, आकार घटता होता है।


हालांकि, इस तरह एक न्यूनतम उदाहरण लिखकर खुद को परखने से न डरें :):

#include <iostream>
#include <vector>

using namespace std;

int main()
{
    vector<int> v(5);
    v = {1,2,3,4,5};
    cout << v.size() << endl;
    v.erase(v.begin()+4);
    cout << v.size() << endl;
    return 0;
}

आपको मिलेगा:

gsamaras@gsamaras-A15:~$ g++ -Wall -std=c++0x main.cpp 
gsamaras@gsamaras-A15:~$ ./a.out 
5
4

और हम उम्मीद करेंगे कि सही? मेरा मतलब है ref कहता है:

वापसी का आकार

वेक्टर में तत्वों की संख्या लौटाता है।

यह वेक्टर में रखी वास्तविक वस्तुओं की संख्या है, जो जरूरी नहीं कि इसकी भंडारण क्षमता के बराबर हो।

11
gsamaras 2 अक्टूबर 2016, 16:51
धन्यवाद! मैं सोच रहा था कि क्या वह विशेष सेल खाली होगी या लगातार तत्वों को बाईं ओर स्थानांतरित किया जाएगा!
 – 
Kishaan92
2 अक्टूबर 2016, 16:45
1
आपका स्वागत है @ किशन92, सुनिश्चित करें कि आप उत्तर को स्वीकार करते हैं! :) वैसे, जब आप संदेह में हों, तो आपको परीक्षण करने के लिए न्यूनतम उदाहरण लिखने की आदत डाल लेनी चाहिए! :)
 – 
gsamaras
2 अक्टूबर 2016, 16:46
हां यकीनन! अगली बार इसे यहां पोस्ट करने से पहले मैं इसका परीक्षण करूंगा। मैं बीटीडब्ल्यू कोडिंग के लिए नौसिखिया हूँ :)
 – 
Kishaan92
2 अक्टूबर 2016, 17:09
मैं समझ सकता हूं कि @ किशन92, इसलिए मैंने प्रश्न का उत्तर दिया, अन्यथा मैं इसे बंद करने के लिए मतदान करता। आप देखिए, मैं शुरू में आपके जैसा ही था, लेकिन स्टैक ओवरफ्लो (और कुछ अन्य) ने मुझे इस डर को दूर करने का तरीका बताया! और अब मेरी बारी है... :)
 – 
gsamaras
2 अक्टूबर 2016, 17:11
हाँ, अब मैं समझता हूँ कि स्टैक ओवरफ़्लो का ठीक से उपयोग कैसे करें (यानी बिना किसी वोट के;) उम्मीद है कि मैं जल्द ही अपने डर पर काबू पा लूंगा! :)
 – 
Kishaan92
2 अक्टूबर 2016, 17:38