अवधियाँ और घड़ियाँ
समयांतराल मापें
अवधियाँ और घड़ियाँ, CoddyKit पर C++ Academy का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह C++ Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। C++ Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
<chrono> क्यों
<chrono> लाइब्रेरी C++ में समय के साथ काम करने का प्रकार-सुरक्षित तरीका देती है। साधारण पूर्णांकों के बजाय आप सशक्त प्रकार वाली अवधियों और समय-बिंदुओं का उपयोग करते हैं, जिससे कंपाइलर इकाइयों की गलतियों को पकड़ लेता है।
- अब सेकंड और मिलीसेकंड को आपस में मिलाने की समस्या नहीं रहती।
- इकाइयाँ प्रकार-प्रणाली का हिस्सा होती हैं।
#include <iostream>
#include <chrono>
int main() {
using namespace std::chrono;
seconds s{5};
std::cout << "Duration: " << s.count() << " seconds\n";
return 0;
}अवधि क्या है
std::chrono::duration समय के अंतराल को दर्शाता है। यह टिकों की संख्या और टिक की अवधि बताने वाले अनुपात को संग्रहीत करता है। पहले से परिभाषित उपनाम सामान्य इकाइयों को समेटते हैं।
hours,minutes,secondsmilliseconds,microseconds,nanoseconds
#include <iostream>
#include <chrono>
int main() {
using namespace std::chrono;
milliseconds ms{1500};
std::cout << ms.count() << " ms\n";
return 0;
}अवधि लिटरल
std::chrono_literals नेमस्पेस आपको 5s या 200ms जैसे प्रत्ययों के साथ अवधियाँ लिखने देता है, जिससे कोड साधारण भाषा जैसा पढ़ा जाता है।
#include <iostream>
#include <chrono>
int main() {
using namespace std::chrono_literals;
auto wait = 3s;
auto blink = 250ms;
std::cout << wait.count() << "s, " << blink.count() << "ms\n";
return 0;
}अवधियों का रूपांतरण
duration_cast इकाइयों के बीच रूपांतरण करता है। अधिक सूक्ष्म इकाई से कम सूक्ष्म इकाई में रूपांतरण करने पर मान छँट जाता है, इसलिए 1500 ms, 1 s बन जाता है।
#include <iostream>
#include <chrono>
int main() {
using namespace std::chrono;
milliseconds ms{1500};
seconds s = duration_cast<seconds>(ms);
std::cout << s.count() << " whole seconds\n";
return 0;
}अवधियों पर अंकगणित
अवधियाँ +, -, * और / का समर्थन करती हैं। अलग-अलग इकाइयों को मिलाने पर वे अपने-आप सबसे सूक्ष्म सामान्य इकाई में बदल जाती हैं।
#include <iostream>
#include <chrono>
int main() {
using namespace std::chrono;
auto total = minutes{2} + seconds{30};
std::cout << total.count() << " seconds total\n";
return 0;
}दशमलव-अंक अवधि
रूपांतरण करते समय भिन्नात्मक मान बनाए रखने के लिए आप दशमलव-अंक निरूपण का उपयोग कर सकते हैं, जिससे पूर्णांक अवधियों में होने वाली कटौती से बचा जा सकता है।
#include <iostream>
#include <chrono>
int main() {
using namespace std::chrono;
milliseconds ms{1500};
duration<double> secs = ms;
std::cout << secs.count() << " seconds\n";
return 0;
}घड़ी क्या है
एक घड़ी वर्तमान समय उपलब्ध कराती है। मानक लाइब्रेरी तीन घड़ियाँ देती है:
system_clock— वास्तविक घड़ी का समयsteady_clock— कभी पीछे नहीं जाती, समय मापने के लिए आदर्शhigh_resolution_clock— उपलब्ध सबसे सूक्ष्म टिक
#include <iostream>
#include <chrono>
int main() {
using namespace std::chrono;
auto now = steady_clock::now();
std::cout << "Got a time point: " << (now.time_since_epoch().count() > 0) << '\n';
return 0;
}system_clock
system_clock वास्तविक दुनिया के कैलेंडर समय पर नज़र रखती है और प्रदर्शन के लिए इसे time_t में बदला जा सकता है। सिस्टम घड़ी समायोजित होने पर यह आगे या पीछे छलाँग लगा सकती है।
#include <iostream>
#include <chrono>
int main() {
using namespace std::chrono;
auto tp = system_clock::now();
auto secs = duration_cast<seconds>(tp.time_since_epoch());
std::cout << "Seconds since epoch is positive: " << (secs.count() > 0) << '\n';
return 0;
}steady_clock
steady_clock एकदिश होती है: यह स्थिर दर से केवल आगे बढ़ती है। बीता हुआ समय मापते समय हमेशा इसका उपयोग करें, system_clock का नहीं।
#include <iostream>
#include <chrono>
int main() {
using namespace std::chrono;
auto a = steady_clock::now();
auto b = steady_clock::now();
std::cout << "Monotonic: " << std::boolalpha << (b >= a) << '\n';
return 0;
}घड़ी की सूक्ष्मता
हर घड़ी अपने period को संकलन-समय पर ज्ञात अनुपात के रूप में उपलब्ध कराती है। आप संकलन-समय पर यह भी जाँच सकते हैं कि कोई घड़ी स्थिर है या नहीं।
#include <iostream>
#include <chrono>
int main() {
using namespace std::chrono;
std::cout << "steady_clock is_steady: " << std::boolalpha << steady_clock::is_steady << '\n';
std::cout << "system_clock is_steady: " << system_clock::is_steady << '\n';
return 0;
}सभी को एक साथ लागू करना
घड़ियों और अवधियों को मिलाएँ: दो समय-बिंदु पढ़ें और उनके अंतर को अपनी चुनी हुई इकाई में अवधि के रूप में निकालें।
#include <iostream>
#include <chrono>
int main() {
using namespace std::chrono;
auto start = steady_clock::now();
long sum = 0;
for (int i = 0; i < 1000000; ++i) sum += i;
auto end = steady_clock::now();
auto us = duration_cast<microseconds>(end - start);
std::cout << "Loop took at least 0 us: " << (us.count() >= 0) << '\n';
return 0;
}त्वरित जाँच
समय मापने के लिए किस घड़ी का उपयोग करना चाहिए, इसकी अपनी समझ का परीक्षण करें।
पुनरावलोकन
आपने सीखा कि <chrono> उपलब्ध कराता है:
- अवधियाँ — समय के प्रकार-सुरक्षित अंतराल, जिनमें
5sजैसे लिटरल शामिल हैं - इकाइयों के रूपांतरण के लिए
duration_cast(पूर्णांकों को छोटा कर देता है) - घड़ियाँ —
system_clock,steady_clock,high_resolution_clock - अंतराल मापने के लिए
steady_clockका उपयोग करें
अगले चरण में आप समय के विशिष्ट क्षणों को समय-बिंदुओं के रूप में दर्शाएँगे।
एआई शिक्षक के साथ C++ सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 51
- पाठ
- 203
अक्सर पूछे जाने वाले प्रश्न
क्या “अवधियाँ और घड़ियाँ” पाठ निःशुल्क है?
हाँ — C++ Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “अवधियाँ और घड़ियाँ” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। C++ Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“अवधियाँ और घड़ियाँ” में मैं क्या सीखूँगा?
समयांतराल मापें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ C++ Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या C++ Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर C++ Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।
“अवधियाँ और घड़ियाँ” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस C++ Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर C++ Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- अवधियाँ और घड़ियाँ
- समय-बिंदु
- कोड के प्रदर्शन को मापना
- कैलेंडर और समय क्षेत्र