सी ++ और एसटीएल का उपयोग करते हुए, क्या कोई जानता है कि एक एसटीएल सूची या वेक्टर में नोड्स के रूप में पूर्णांक सरणी को कैसे स्टोर किया जाए? मेरे पास संख्याओं के जोड़े की अज्ञात संख्या है जिन्हें मुझे स्टोर करने की आवश्यकता है, और अन्य भाषाओं से आना मेरा पहला विचार किसी प्रकार की सूची का उपयोग करना था- या वेक्टर जैसी डेटा संरचना ... लेकिन मैं कुछ परेशानी में भाग रहा हूं। मुझे 100% यकीन है कि मैं एक स्पष्ट शुरुआत करने वाला सी ++ गलती कर रहा हूं, और कोई भी जो वास्तव में भाषा जानता है, वह एक नजर डालेगा जो मैं करने की कोशिश कर रहा हूं और मुझे सीधे सेट करने में सक्षम हूं।मैं एसटीएल सूची में सरणी कैसे स्टोर करूं?
तो, मैंने जो कोशिश की है वह यहां है। एक सूची की घोषणा तो काम करता है जैसे:
stl::list<int[2]> my_list;
और फिर मैं आसानी से ऐसा तरह एक दो तत्व सरणी बना सकते हैं,:
int foo[2] = {1,2};
यह संकलित करता है तथा ठीक चलाता है। हालांकि, जैसे ही मैं अपने सूची में foo
जोड़ने के लिए है, तो तरह की कोशिश के रूप में:
my_list.push_back(foo);
मैं संकलक त्रुटियों, जिनमें से कोई भी मैं सच में समझ में (मेरी सी ++ की एक पूरी ऐंठा हुआ सेट प्राप्त - फू लगभग न के बराबर है):
/usr/include/c++/4.0.0/ext/new_allocator.h: In member function ‘void __gnu_cxx::new_allocator<_Tp>::construct(_Tp*, const _Tp&) [with _Tp = int [2]]’:
/usr/include/c++/4.0.0/bits/stl_list.h:440: instantiated from ‘std::_List_node<_Tp>* std::list<_Tp, _Alloc>::_M_create_node(const _Tp&) [with _Tp = int [2], _Alloc = std::allocator<int [2]>]’
/usr/include/c++/4.0.0/bits/stl_list.h:1151: instantiated from ‘void std::list<_Tp, _Alloc>::_M_insert(std::_List_iterator<_Tp>, const _Tp&) [with _Tp = int [2], _Alloc = std::allocator<int [2]>]’
/usr/include/c++/4.0.0/bits/stl_list.h:773: instantiated from ‘void std::list<_Tp, _Alloc>::push_back(const _Tp&) [with _Tp = int [2], _Alloc = std::allocator<int [2]>]’
test.cpp:5: instantiated from here
/usr/include/c++/4.0.0/ext/new_allocator.h:104: error: ISO C++ forbids initialization in array new
तो, किसी के पास विचार है कि मैं यहां क्या गलत कर रहा हूं? कोई पॉइंटर्स (कोई इरादा नहीं है) सबसे उपयोगी होगा। क्या std :: सूची में सरणी स्टोर करना संभव नहीं है? क्या मुझे एक संरचना का उपयोग करना चाहिए? क्या मुझे बस *
या &
कहीं याद आ रहा है?
मानक में परिभाषा दूसरे प्रकार के लिए डिफ़ॉल्ट प्रकार प्रदान नहीं करती है, इसलिए आपको स्पष्ट रूप से दोनों प्रकार प्रदान करना होगा। –