आप एक संघ का उपयोग कर सकते हैं, लेकिन बेहतर विकल्प हैं।
आप boost::variant
उपयोग कर सकते हैं कार्यक्षमता के इस प्रकार प्राप्त करने के लिए:
using string_int = boost::variant<std::string, int>;
std::vector<string_int> vec;
या तो एक स्ट्रिंग या एक प्रकार के बाहर एक पूर्णांक के लिए, आप boost::get
उपयोग कर सकते हैं:
std::string& my_string = boost::get<std::string>(vec[0]);
संपादित
ठीक है, यह अब 2017 है। आपको अब variant
रखने के लिए बूस्ट की आवश्यकता नहीं है, क्योंकि अब हमारे पास std::variant
है!
स्रोत
2013-07-18 21:22:22
http://www.boost.org/doc/libs/1_54_0/doc/html/variant.html – chris
संभव डुप्लिकेट [एक सरणी बनाना जो सी ++ में विभिन्न वर्गों की वस्तुओं को पकड़ सकता है] (http: // stackoverflow .com/प्रश्न/2764671/बनाने-एक-सरणी-जो-कैन-होल्ड-ऑब्जेक्ट-ऑफ-अलग-कक्षा-इन-सी) – hivert
रुको, क्या आप चाहते हैं कि यह दोनों या तो एक int या स्ट्रिंग प्रत्येक तत्व में? – chris