मैं आईडी की एक साहचर्य सरणी के रूप में एक नक्शा उपयोग कर रहा हूँ -> मूल्य, जहां मूल्य एक struct वस्तु को परिभाषित है:आप एक नक्शा कैसे शुरू करते हैं जो संरचना के रूप में मूल्य लेता है?
#include <map>
struct category {
int id;
std::string name;
};
std::map<int, category> categories;
int main() {
categories[1] = {1, "First category"};
categories[2] = {2, "Second category"};
}
ऊपर कोड जी के साथ ++ संकलित है, लेकिन निम्न चेतावनी के साथ:
warning: extended initializer lists only available with -std=c++0x or -std=gnu++0x
मैंने संरचना प्रारंभिकरण के बारे में यहां विभिन्न प्रश्न/उत्तर पढ़े हैं, लेकिन मैं अभी भी थोड़ा उलझन में हूं।
मैं संकलक विकल्प -std = C++ 0x जोड़ सकता है और चेतावनी के साथ किया जा, लेकिन फिर भी कोई भी मूल समस्या के बारे में समझदार हो: मैं संबंधित प्रश्नों की एक श्रृंखला है। यदि मैं श्रेणी संरचना में कोई विधि जोड़ता हूं तो चीजें तोड़ नहीं जाएंगी?
इस पीओडी संरचना (श्रेणी) को और अधिक C++ 03 अनुरूप तरीके से शुरू करने का सबसे अच्छा तरीका क्या होगा?
असल में, मुझे अभी तक किसी अन्य तरीके से चीजों को करने का नतीजा नहीं है। इस प्रकार की एसोसिएटिव सरणी (जहां कुंजी किसी ऑब्जेक्ट की आईडी है) PHP के साथ आसान है, और मैं अभी भी सी ++ में ऐसा करने के उचित तरीके के बारे में सीख रहा हूं। क्या उपरोक्त कोड के संदर्भ में मुझे कुछ भी ध्यान देना चाहिए?
संपादित
निम्न प्रश्नों से संबंधित हैं, लेकिन मैं जवाब समझ में नहीं आया जब मैंने पहली बार उन्हें पढ़ने:
C++ initialize anonymous struct
c++ Initializing a struct with an array as a member
Initializing structs in C++
आखिर में कोई भी जो इसे ठीक से मिला है। धन्यवाद, चार्ल्स! – sbi
पूरी चर्चा को सारांशित करने के लिए समय लेने के लिए @ चार्ल्स बेली धन्यवाद। इस आगे बढ़ने के लिए @ एसबीआई धन्यवाद। मैं इसकी बहुत सराहना करता हूं। :) – augustin
बीटीडब्ल्यू, प्रश्न का शीर्षक अंततः चर्चा की सामग्री को प्रतिबिंबित नहीं करता है।प्रश्न के शीर्षक को संपादित करने के लिए स्वतंत्र महसूस करें जो अधिक उपयुक्त होगा। – augustin