जबकि खेल रहे हैं और वेक्टर का कुल आकार की गणना करने की कोशिश कर रहा तरहमैं वेक्टर का एक उदाहरण पर VALUE_TYPE उपयोग कर सकते हैं, अपने प्रकार पर नहीं
vector<double> vd;
auto area = vd.size()* sizeof (vd::value_type);
//Ive seen Stepanov use area as name for this kind of size, idk if he adds the sizeof vd also to area :)
दुर्भाग्य से यह काम नहीं करता है कुछ करने की कोशिश की ... मैं करने की जरूरत है vector<double>::value_type
का उपयोग करें, लेकिन यह कोड को कम पढ़ने योग्य बनाता है। क्या इसे काम करने के लिए बनाया जा सकता है? मुझे sizeof vd.front()
पसंद नहीं है क्योंकि यह इसके लिए front()
लिखने के लिए बदसूरत लग रहा है।
संपादित करें: decltype भी में फिट वेरिएंट क्या मैं बदसूरत श्रेणी कहेंगे ...
sizeof को तर्क जिस तरह से आप का सुझाव में मूल्यांकन नहीं किया गया है - इस तरह से यह के बारे में सोच: संकलक क्या 'vd.front पर लग रहा है 'उस प्रकार पर आकार लौटाता है और लागू होता है, यहां कोई फ़ंक्शन कॉल नहीं होता है। – Fiktik
मैंने जो कहा वह पढ़ा ... मुझे पता है कि आकार का संकलन समय है ... बस .front() बदसूरत है क्योंकि यह इरादा को संकेत नहीं देता है ... यह .back() [.size() - 1] हो सकता है। .. – NoSenseEtAl
खराब शब्द के लिए मेरी माफ़ी ... "लिखने" के साथ "कॉल" को प्रतिस्थापित किया गया है और कुछ और सोचते समय एक चीज़ लिखना आसान है ...:/ – NoSenseEtAl