मैं वर्तमान में आम कार्यों (खोज एल्गोरिथ्म कार्यान्वयन) का एक सेट का निर्माण कर रहा हूँ, और लगता है कि मैं गलत कर रहा हूँ समूहीकरण।स्थिर कार्यों को पकड़ने के लिए सी ++ में एक कंटेनर 'चीज़' बनाना। 'चीज' क्या होनी चाहिए?
#ifndef SORTING_H
#define SORTING_H
#include <vector>
class Sorting {
private:
Sorting();
Sorting(const Sorting& orig);
virtual ~Sorting();
public:
static void bubbleSort(std::vector<int>& A);
// etc
};
#endif /* SORTING_H */
अब, क्योंकि निर्माता निजी है, एक उपयोगकर्ता: पल में, मैं एक वर्ग, सॉर्टिंग, कि Sorting.h (यह कहीं नहीं के पास अभी तक समाप्त हो, Btw) तो जैसे नामक एक फ़ाइल में घोषित किया जाता है है मेरी कक्षा को तुरंत चालू नहीं कर सकता - यह प्रभावी रूप से स्थिर कार्यों के लिए एक धारक है जिसे उपयोगकर्ता कॉल कर सकते हैं। हालांकि, मैंने अब तक सी ++ के बारे में जो पढ़ा है - और एसटीएल पुस्तकालयों को देखने से- मुझे लगता है कि मैं यह गलत कर रहा हूं। क्या मुझे इसके बजाय 'सॉर्टिंग' या किसी प्रकार का नाम नामक नामस्थान होना चाहिए? यदि हां, तो मेरे हेडर फ़ाइल (जिसे उपयोगकर्ता शामिल करेगा) जैसा दिखता है? और क्या मुझे बाकी फाइलों की संरचना बदलनी होगी? फिलहाल एल्गोरिदम का प्रत्येक सेट इसकी स्वयं की सीपीपी फ़ाइल में है (यानी BubbleSort.cpp, CocktailSort.cpp, आदि)।
डुप्लीकेट प्रश्न क्या हो सकता है इसके लिए माफ़ी - मैंने सी ++ और नेमस्पेस की खोज की, लेकिन मुझे नामस्थानों के बारे में बहुत सामान्य प्रश्न मिल गए और कोई भी यह विशिष्ट समस्या नहीं लग रहा था।
'(इटरेटर पहले इटरेटर पिछले)', उदाहरण के लिए। – Potatoswatter
धन्यवाद। मैं जल्द ही टेम्पलेट्स पर जाने जा रहा हूं, मैं यह जानने का प्रयास कर रहा था कि आप कैसे बताते हैं कि एक टेम्पलेटेड क्लास/आदिम सी ++ में तुलनीय है या नहीं - यानी मुझे कैसे पता चलेगा कि यह काम करेगा जब यह "<" आदि पर कॉल किया जाएगा। या यह है कि अंत उपयोगकर्ता को चिंतित होना चाहिए? एक और सवाल के रूप में - यहां आपने उसी नामस्थान घोषणा में कॉकटेल_सॉर्ट और बबल_सॉर्ट रखा है - क्या मैं इसके लिए कई अलग-अलग फाइलों का उपयोग कर सकता हूं? – Stephen
@DeadMG: दो सुझाव: 1. प्रकार के नाम आमतौर पर आवश्यक प्रकार के इटरेटर्स का वर्णन करते हैं, उदा। 'RandomAccessReadableWriteableIterator' या' ForwardReadableWriteableIterator'। 2. पुनरावृत्तियों के विकल्प के रूप में, आप श्रेणियों का उपयोग कर सकते हैं, जो अधिक लचीला और उपयोग करने में आसान हैं। – Philipp