अगर मैं बना
std::vector<std::array<double, 2>> points;
std::vector<double> points2;
मुझे पता है कि अंक 2 ढेर में स्मृति धारण युगल का एक सन्निहित हिस्सा होगा। मुझे लगता है कि अंक डबल * की ढेर की स्मृति का एक संगत हिस्सा होगा? लेकिन क्या वे सरणी ढेर में सन्निहित होगी? मान लीजिए कि मैं कुछ बिंदुओं का प्रतिनिधित्व करने के लिए युगल के जोड़े संग्रहीत कर रहा हूं।
अंक 2 इस तरह स्मृति में है: [x0 y0 x1 y1 x2 y2 ...] अंक के बारे में क्या? इस मामले में युगल की जोड़ी को स्टोर करने का सबसे अच्छा तरीका क्या है? किसी भी टिप के लिए धन्यवाद।
2 जवाब
सरणियों का एक वेक्टर सन्निहित है?
नहीं ऐसा नहीं है। std::array
में अंत में पैडिंग या अतिरिक्त सदस्य भी हो सकते हैं। अधिक विवरण, उदाहरण के लिए, यहां:
- क्या नेस्टेड std::arrays में डेटा सन्निहित होने की गारंटी है?
- क्या मानक द्वारा परिभाषित एसटीडी का आकार :: सरणी है?
लेकिन मेरा मानना है कि ऐसा होने की संभावना बहुत कम है और आप 2 * sizeof(double)
की sizeof(std::array<double, 2>)
से तुलना करके ऐसी स्थितियों की जांच कर सकते हैं।
यह मानते हुए कि sizeof(std::array<double, 2>)
, alignof(std::array<double, 2>)
का एक पूर्णांक गुणज है, तो उन्हें बिना किसी पैडिंग के एक साथ संग्रहित किया जाना चाहिए।
और यह बहुत संभावना है कि यह हमेशा ऐसा ही रहेगा।
संबंधित सवाल
जुड़े हुए प्रश्न
नए सवाल
c++
C ++ एक सामान्य-प्रयोजन प्रोग्रामिंग भाषा है। यह मूल रूप से C के विस्तार के रूप में डिज़ाइन किया गया था और इसमें एक समान सिंटैक्स है, लेकिन यह अब पूरी तरह से अलग भाषा है। C ++ कंपाइलर के साथ संकलित कोड के बारे में प्रश्नों के लिए इस टैग का उपयोग करें। विशिष्ट मानक संशोधन [C ++ 11], [C ++ 14], [C ++ 17], [C ++ 20] या [C ++ 23], आदि से संबंधित प्रश्नों के लिए संस्करण-विशिष्ट टैग का उपयोग करें। ।