2013-01-20 16 views
23

जावा में में मैंजावा ArrayList सी ++

List<String> data = new ArrayList<String>(); 
data.add("my name"); 

मैं सी ++ में भी ऐसा ही होता है कैसे कर सकते हैं?

+9

लोग, डाउनवॉटिंग रोकें। यह सी ++ सीखने के लिए अन्य भाषाओं से आने वाले प्रोग्रामर को हतोत्साहित करता है। प्रश्न में कुछ भी गलत नहीं है। – Nawaz

+2

मुझे आश्चर्य है कि क्या सोचा प्रक्रिया, अगर कोई है, तो उस डाउनवोट में चला गया। – kasavbere

उत्तर

50

उपयोग std::vector और std::string:

#include <vector> //for std::vector 
#include <string> //for std::string 

std::vector<std::string> data; 
data.push_back("my name"); 

ध्यान दें कि सी ++ में, आप new हर उपयोग करने के लिए आप एक वस्तु बनाने की जरूरत नहीं है। ऑब्जेक्ट data डिफ़ॉल्ट रूप से std::vector के डिफ़ॉल्ट कन्स्ट्रक्टर को कॉल करके प्रारंभ किया गया है। तो उपरोक्त कोड ठीक है।

सी ++ में, मोटो है: से बचें संभव जितना new

आप पहले से ही आकार का पता संकलन समय पर और सरणी विकसित करने के लिए की जरूरत नहीं है, तो आप std::array उपयोग कर सकते हैं:

#include <array> //for std::array 

std::array<std::string, N> data; //N is compile-time constant 
data[i] = "my name"; //for i >=0 and i < N 

अधिक जानकारी के लिए प्रलेखन पढ़ें:


सी ++ मानक पुस्तकालय कई कंटेनर नहीं है। स्थिति के आधार पर आपको एक ऐसा चुनना होगा जो आपके उद्देश्य के लिए उपयुक्त है। उनमें से प्रत्येक के बारे में बात करना मेरे लिए संभव नहीं है। लेकिन यहाँ चार्ट मदद करता है कि एक बहुत (source) है:

enter image description here

+0

क्या आपको कक्षा को पहले शुरू करने की आवश्यकता नहीं होगी? –

+5

@ शीओ: हुह? वेक्टर पहले ही शुरू हो चुका है। –

+0

मुझे कन्स्ट्रक्टर को कॉल नहीं दिख रहा है ... –

0

सभी एक पंक्ति में वेक्टर myVec संयुक्त (1, "हैलो");