2012-12-05 19 views
8

Google और stackoverflow खोज के लिए मेरी मदद नहीं कर सका, मेरे पास आपकी सहायता के लिए लोगों से पूछने के अलावा कोई विकल्प नहीं है।वेक्टर सी ++ का ऐरे - तत्वों को जोड़ते समय उत्सुक व्यवहार

मैं वैक्टरों की एक सरणी का उपयोग करना चाहता हूं - मुझे पता है कि इस सरणी में केवल दो वैक्टर शामिल होंगे। इस प्रकार

vector<double> testVect[1]; 

अब जब मैं पहली बार वेक्टर सरणी में निहित मैं उपयोग करने के लिए एक तत्व जोड़ना चाहते हैं

testVect[0].push_back(0); 

अब तक सब कुछ ठीक लगता है - दुर्भाग्य से पहले वेक्टर के लिए कोई तत्व जोड़ किसी भी तरह यह भी कहते हैं वही तत्व (इस मामले में 0) दूसरे वेक्टर के साथ-साथ।

क्या कोई मुझे इस तरह के व्यवहार के कारण बता सकता है? (कृपया) - और शायद एक कामकाज। वर्तमान में मैं दृश्य स्टूडियो 6 उपयोग करने के लिए (नियोक्ता एक नया संकलक स्थापित नहीं होगा - मैं पहले से ही मेरे सहकर्मियों अप riling हूँ: डी

+3

'वेक्टर testVect [1]; 'केवल एक वेक्टर बनाता है। यह '0' की अधिकतम अनुक्रमणिका के साथ एक वेक्टर की एक सरणी है। आपको क्या लगता है कि दूसरा तत्व है, या यह push_back से भी प्रभावित होगा? –

+0

मैंने अपने तत्वों को accesing के साथ एक वेक्टर शुरू करने में उलझन में उलझन में। सी ++ में 0 के साथ वेक्टर तत्वों की गिनती शुरू होती है। इस प्रकार यदि एक वेक्टर में 2 तत्व होते हैं तो आप वेक्टर [0] के माध्यम से पहले पहुंचेंगे। यही कारण है कि मैंने सोचा था कि testVect लिखना [1] परिणामस्वरूप दो वैक्टरों की सरणी होगी। धन्यवाद :) –

+0

फिर से नीचे जा रहा है - इस बार कोई स्पष्ट कारण नहीं है ... कभी-कभी लोग भ्रमित हो जाते हैं। –

उत्तर

16

आप दो वैक्टर चाहते हैं, आप की घोषणा करना चाहिए:

vector<double> testVect[2]; 

तो BTW अपने कोड में testVect[0] और testVect[1] का उपयोग करें।

और आप अपने संकलक पर सभी चेतावनियों सक्षम होना चाहिए।

, आप हाल ही में जीसीसी संकलक के साथ, हाल ही में एक Linux वितरण स्थापित कर सकता है (उदाहरण के लिए 4.7), और इसे g++ -Wall -g के रूप में चलाएं, यह निश्चित रूप से आपको चेतावनी देगा कि यदि आपने testVect सीमाओं से स्थिर रूप से उपयोग किया है, जैसा कि ऐसा लगता है कि आपके पास है।

दोनों जीएनयू/लिनक्स और जीसीसी मुक्त हैं, इसलिए आपका प्रबंधक खुश हो सकता है।

+0

लॉल अच्छा पकड़! –

+0

हम्म मेरे पास कोई खुला ग्राहक नहीं है और आईटी विभाग को पहले बिना अनुमति देने के लिए किसी भी सॉफ्टवेयर को इंस्टॉल नहीं किया जा सकता है :(फिर भी सुझाव के लिए धन्यवाद :) –

+0

ओकी सभी चेतावनियों को सक्षम करने में समझ में आता है - धन्यवाद –

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^