Jadual Kandungan
Mendapatkan masa sekarang
Mengukur masa pelaksanaan dengan tepat
Bekerja dengan Titik Masa dan Tempoh
Memformat dan menghuraikan masa (c 20)
Rumah pembangunan bahagian belakang C++ Menggunakan std :: chrono di c

Menggunakan std :: chrono di c

Jul 15, 2025 am 01:30 AM
php java pengaturcaraan

STD :: Chrono digunakan dalam C untuk memproses masa, termasuk mendapatkan masa semasa, mengukur masa pelaksanaan, titik masa operasi dan tempoh, dan masa analisis pemformatan. 1. Gunakan std :: chrono :: system_clock :: sekarang () untuk mendapatkan masa semasa, yang boleh ditukar menjadi rentetan yang boleh dibaca, tetapi jam sistem mungkin tidak membosankan; 2. Gunakan std :: chrono :: steady_clock untuk mengukur masa pelaksanaan untuk memastikan monotonik, dan mengubahnya menjadi milisaat, saat dan unit lain melalui duration_cast; 3. Titik masa (time_point) dan tempoh (tempoh) boleh beroperasi dengan saling beroperasi, tetapi memberi perhatian kepada perbezaan keserasian unit dan zaman jam; 4. C 20 menyokong pemformatan masa dan parsing, dan perlu menggunakan std :: format dan std :: parse, bergantung pada sokongan pengkompil untuk C 20.

Menggunakan std :: chrono di c

Menggunakan std::chrono di C boleh menjadi sangat berguna sebaik sahaja anda mendapat gantungnya. Ia adalah sebahagian daripada perpustakaan standard dan memberi anda alat yang kukuh untuk mengendalikan masa - sama ada ia mengukur tempoh, bekerja dengan cap waktu, atau berurusan dengan zon waktu di C 20 dan seterusnya.

Menggunakan std :: chrono di c

Mendapatkan masa sekarang

Untuk merebut titik semasa, anda biasanya pergi dengan std::chrono::system_clock::now() . Itu memberi anda time_point yang mewakili sekarang.

 auto sekarang = std :: chrono :: system_clock :: sekarang ();

Ini sering digunakan apabila anda ingin mengukur berapa lama sesuatu yang diperlukan atau hanya log cap waktu. Sekiranya anda perlu menukarnya kepada sesuatu yang boleh dibaca seperti rentetan, anda biasanya akan menukarnya ke time_t dan menggunakan ctime atau serupa:

Menggunakan std :: chrono di c
 std :: time_t now_c = std :: chrono :: system_clock :: to_time_t (sekarang);
std :: cout << "Masa semasa:" << std :: ctime (& now_c);

Perlu diingat bahawa sistem_clock mungkin tidak monotonik - jika seseorang mengubah masa sistem, ia boleh melompat ke hadapan atau ke belakang. Untuk tujuan masa, baca terus.


Mengukur masa pelaksanaan dengan tepat

Apabila anda ingin mengukur berapa lama sekeping kod berjalan, steady_clock adalah rakan anda. Ia monotonik (tidak akan pergi ke belakang), yang menjadikannya selamat untuk masa.

Menggunakan std :: chrono di c

Inilah corak biasa:

 Auto start = std :: chrono :: steady_clock :: sekarang ();

// ... buat kerja ...

Auto end = std :: chrono :: steady_clock :: sekarang ();
Tempoh auto = akhir - mula;

Jika anda ingin menunjukkan ini dalam jutaan atau saat, anda akan membuangnya menggunakan duration_cast :

 auto ms = std :: chrono :: duration_cast <std :: chrono :: milliseconds> (duration) .count ();
std :: cout << "mengambil" << ms << "ms \ n";

Anda juga boleh menggunakan microseconds , nanoseconds , atau seconds . Perlu diingat bahawa menukar dari ketepatan yang lebih tinggi (seperti nanoseconds) ke bawah (seperti saat) akan dipotong kecuali anda membuang dengan betul.


Bekerja dengan Titik Masa dan Tempoh

  • Time_point adalah momen tertentu.
  • Tempoh adalah jangka masa (seperti 5 saat).

Mereka adalah jenis yang berasingan, tetapi mereka bekerjasama. Anda boleh menambah tempoh ke titik time_point untuk mendapatkan masa time_ baru:

 Auto kemudian = sekarang std :: chrono :: jam (2);

Ini berguna apabila menjadualkan acara atau menunggu sehingga masa tertentu. Hanya pastikan kedua -dua belah operasi menggunakan unit yang serasi - jam pencampuran dan juta saat tidak akan menyebabkan kesilapan, tetapi ia mungkin tidak melakukan apa yang anda harapkan melainkan jika anda secara jelas menukar.

Juga, jangan menganggap bahawa semua jam bermula pada sifar - zaman mereka (titik permulaan) berbeza:

  • system_clock biasanya bermula pada tahun 1970 (seperti masa Unix).
  • steady_clock mempunyai zaman sewenang -wenang, jadi membandingkan masa time_ di seluruh larian tidak masuk akal.

Memformat dan menghuraikan masa (c 20)

Dengan C 20, <chrono> mendapat sokongan yang lebih baik untuk tarikh dan masa pemformatan secara langsung:

 auto sekarang = std :: chrono :: system_clock :: sekarang ();
std :: cout << "Formatted:" << std :: format ("{:%y-%m-%d%h:%m}", sekarang) << "\ n";

String masa parsing juga menjadi mungkin:

 STD :: Istringstream SS ("2024-03-15 12:30");
std :: chrono :: system_clock :: time_point tp;
ss >> std :: parse ("%y-%m-%d%h:%m", tp);

Ini sangat berguna apabila membaca log atau fail konfigurasi dengan cap waktu. Tetapi ingat, ciri -ciri ini memerlukan C 20 dan sokongan pengkompil yang baik (seperti GCC 13, Clang 15, atau MSVC dengan STL terkini).


Jadi yeah, std::chrono cukup kuat apabila anda memahami jenis asas dan bila menggunakan setiap jam. Tidak terlalu keras, hanya sedikit mudah untuk dicampur pada mulanya.

Atas ialah kandungan terperinci Menggunakan std :: chrono di c. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Rimworld Odyssey Cara Ikan
1 bulan yang lalu By Jack chen
Apakah had transaksi untuk pengguna asing di Alipay?
1 bulan yang lalu By 下次还敢
Bolehkah saya mempunyai dua akaun Alipay?
1 bulan yang lalu By 下次还敢

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial PHP
1506
276
Penonton pdf tepi tidak berfungsi Penonton pdf tepi tidak berfungsi Aug 07, 2025 pm 04:36 PM

Testthepdfinanotherapptodetermineiftheisseiswiththefileoredge.2.enableTetHEBuilt-Inpdfviewerbyturningoff "AlwaysopenpdffileseXternally" dan "muat turun" inedgesettings.3.clearbrowsdataincludingcookiesandcookiescookiesandcookiescookiesandcookiescookieshincookieshincookiescookiescookiescookiescookiescookiescookiescookiescookiescokiescookiescookiescookiescookiescookiescooker

Menggunakan aplikasi Java ke Kubernet dengan Docker Menggunakan aplikasi Java ke Kubernet dengan Docker Aug 08, 2025 pm 02:45 PM

Aplikasi Java Containerized: Buat Dockerfile, gunakan imej asas seperti Eclipse-Temurin: 17-jre-alpine, salin fail balang dan tentukan perintah permulaan, bina imej melalui Dockerbuild dan lari secara tempatan dengan Dockerrun. 2. Tolak imej ke Registry Container: Gunakan Dockertag untuk menandakan imej dan menolaknya ke DockerHub dan pendaftaran lain. Anda mesti log masuk terlebih dahulu ke Dockerlogin. 3. Digunakan ke Kubernet: Tulis Deployment.yaml Untuk menentukan penggunaan, tetapkan bilangan replika, imej kontena dan sekatan sumber, dan tulis perkhidmatan.yaml untuk membuat

Bagaimana untuk melaksanakan pelanggan TCP yang mudah di Java? Bagaimana untuk melaksanakan pelanggan TCP yang mudah di Java? Aug 08, 2025 pm 03:56 PM

Importjava.ioandjava.net.socketfFori

Pintasan kod vs untuk memberi tumpuan kepada Panel Explorer Pintasan kod vs untuk memberi tumpuan kepada Panel Explorer Aug 08, 2025 am 04:00 AM

Di VSCode, anda boleh menukar kawasan panel dan penyuntingan dengan cepat melalui kekunci pintasan. Untuk melompat ke panel Explorer kiri, gunakan CTRL Shift E (Windows/Linux) atau CMD Shift E (MAC); Kembali ke kawasan penyuntingan untuk menggunakan Ctrl `atau ESC atau Ctrl 1 ~ 9. Berbanding dengan operasi tetikus, pintasan papan kekunci lebih cekap dan tidak mengganggu irama pengekodan. Petua lain termasuk: Kotak carian fokus Ctrl Kctrl e, fail menamakan semula F2, memadam fail, masukkan fail terbuka, arrow kunci memperluas/runtuh folder.

Bagaimana untuk melaksanakan pernyataan yang disediakan di Java? Bagaimana untuk melaksanakan pernyataan yang disediakan di Java? Aug 06, 2025 pm 04:04 PM

Muatkan pemacu JDBC dan buat sambungan pangkalan data; 2. Gunakan Connection.PrepareStatement () untuk membuat pernyataan SQL yang mengandungi pemegang tempat; 3. Panggilan setString (), setInt () dan kaedah lain untuk menetapkan nilai parameter dari 1; 4. Call ExecuteUpdate (), ExecuteQuery () atau Execute () mengikut jenis SQL untuk melaksanakan pernyataan; 5. Gunakan sumber-sumber cuba untuk menutup sambungan secara automatik, preparedStatement dan resultset untuk mengelakkan kebocoran memori dan memastikan pemprosesan operasi pangkalan data yang selamat dan efisien.

Apakah proses siri untuk objek Java? Apakah proses siri untuk objek Java? Aug 08, 2025 pm 04:03 PM

Javaserializationconvertsanobject'sstateintoabytestreamforstorageortransmission, anddeserialization reconstructstheobjectfromhattstream.1.toenableserialization, aclassmustimplementtheserializableInterfe.2.useObjectStreamtoserialialization.useObjectStreamtoserialialization.useObjectStreamtosererialialize.

Cara menggunakan gelung sementara di java Cara menggunakan gelung sementara di java Aug 08, 2025 pm 04:04 PM

AwhileloopinjavarepeatedlyexecutescodeaslongasthecondeConditionistrue; 2.InitializeAcontrolvariableBeforetheloop; 3.DefinetheloopcondusingAbeaneanExpression;

Tetap: Kemas kini Windows gagal dipasang Tetap: Kemas kini Windows gagal dipasang Aug 08, 2025 pm 04:16 PM

RuntheWindowsUpdateTroubleshooterviaSettings>Update&Security>Troubleshoottoautomaticallyfixcommonissues.2.ResetWindowsUpdatecomponentsbystoppingrelatedservices,renamingtheSoftwareDistributionandCatroot2folders,thenrestartingtheservicestocle

See all articles