जब मैं फॉलो में टाइप करता हूं। कोड, मैं 1073741823.मैं अपने वेक्टर में 1,000,000,000 क्यों आरक्षित नहीं कर सकता?
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector <int> v;
cout<<v.max_size();
return 0;
}
लेकिन जब मैं, 1,000,000,000 के लिए वेक्टर आकार बदलने के लिए v.resize(1000000000);
द्वारा की कोशिश कार्यक्रम को क्रियान्वित करने बंद हो जाता है के रूप में उत्पादन मिलता है। प्रोग्राम को आवश्यक मेमोरी आवंटित करने में सक्षम कैसे किया जा सकता है, जब ऐसा लगता है कि यह सक्षम होना चाहिए?
मैं विंडोज 7 में मिनीजीडब्लू का उपयोग कर रहा हूं। मेरे पास 2 जीबी रैम है। क्या यह संभव नहीं होना चाहिए? यदि यह संभव नहीं है, तो क्या मैं इसे पूर्णांक की सरणी के रूप में घोषित नहीं कर सकता हूं और दूर हो सकता हूं? यह भी काम नहीं करता है।
एक और बात यह है कि, मान लीजिए कि मैं एक फ़ाइल का उपयोग करूंगा (जो आसानी से इतना डेटा संभाल सकता है)। मैं इसे कैसे पढ़ और लिख सकता हूं और एक ही समय में। fstream file("file.txt', ios::out | ios::in);
का उपयोग पहली बार फ़ाइल नहीं बनाता है। लेकिन फ़ाइल का मानना है कि, मैं पढ़ने और लिखने के लिए उपयोग करने में असमर्थ हूं। क्या मेरा मतलब यह है: फ़ाइल की सामग्री 111111
हो तो अगर मैं चलने दें: -
#include <fstream>
#include <iostream>
using namespace std;
int main()
{
fstream file("file.txt",ios:in|ios::out);
char x;
while(file>>x)
{
file<<'0';
}
return 0;
}
फ़ाइल की सामग्री अब 101010
हो नहीं करना चाहिए? एक चरित्र पढ़ें और फिर अगले के साथ 0 को ओवरराइट करें? या पूरी सामग्री को कुछ बफर में एक बार में पढ़ा गया था, फाइल में कम से कम 0 नहीं होना चाहिए? 1111110
? लेकिन सामग्री unaltered रहती है। कृपया समझाएँ। धन्यवाद।
स्टैक ओवरफ़्लो में आपका स्वागत है! ये दो अलग-अलग प्रश्न हैं। आम तौर पर आपको उन्हें अलग से पूछना चाहिए। –
ये दो बहुत अलग प्रश्न हैं। क्या आप उन्हें दो प्रश्न पदों में विभाजित कर सकते हैं? – wilhelmtell
धन्यवाद। मुझे खेद है, चूंकि स्मृति आवंटन काम नहीं कर रहा था, इसलिए मैंने एक ही काम करने की कोशिश की, लेकिन एक फाइल में, और वहां त्रुटियों का एक अलग सेट मिला। तो मैंने प्रश्नों को एक साथ रखा। मैं अगली बार अलग से पूछना सुनिश्चित कर दूंगा। – shreedhar