सी स्टाइल सरणी में कहें कि पहले से प्रारंभिक डेटा बिछा रहा है, यह न भूलें कि इन एसटीएल कंटेनरों में "2-इटरेटर कन्स्ट्रक्टर" हैं।
const char raw_data[100] = { ... };
std::vector<char> v(raw_data, raw_data + 100);
संपादित: मैं एक नक्शा के लिए एक उदाहरण दिखाने के लिए कहा गया था। यह अक्सर आपके पास चारों ओर जोड़े जोड़े की एक सरणी नहीं होती है, लेकिन अतीत में मैंने एक पायथन स्क्रिप्ट बनाई है जो कच्चे डेटा फ़ाइल से जोड़े की सरणी उत्पन्न करती है। मैं तो इस कोड जेनरेट की गई संरचना # शामिल है और इस तरह यह के साथ एक नक्शा initalized: वैकल्पिक रूप से
#include <map>
#include <string>
#include <utility>
using namespace std;
typedef map<string, int> MyMap;
// this array may have been generated from a script, for example:
const MyMap::value_type raw_data[2] = {
MyMap::value_type("hello", 42),
MyMap::value_type("world", 88),
};
MyMap my_map(raw_data, raw_data + 2);
अगर आप चाबियों का एक सरणी है, और और डेटा मानों की सरणी, आप उन पर पाश कर सकते हैं, नक्शे बुला। डालें (make_pair (कुंजी, मान));
आप मेमसेट और वेक्टर के बारे में भी पूछते हैं। मुझे नहीं लगता कि memset का उपयोग कर एक सदिश प्रारंभ करने के लिए किसी भी असली योग्यता नहीं है, क्योंकि वैक्टर निर्माता के माध्यम से अपने सभी तत्वों के लिए एक प्रारंभिक मूल्य दिया जा सकता है है:
vector<int> v2(100, 42); // 100 ints all with the value of 42
vector<string> v(42, "initial value"); // 42 copies of "initial value"
स्रोत
2009-03-12 23:06:45
अब, मानचित्र के बारे में कैसे? –
मानचित्र के लिए एक उदाहरण जोड़ा गया। –