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 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.

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:

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.

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!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

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

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Elakkan masalah pertanyaan n 1, mengurangkan bilangan pertanyaan pangkalan data dengan memuatkan data yang berkaitan terlebih dahulu; 2. Pilih hanya medan yang diperlukan untuk mengelakkan memuat entiti lengkap untuk menjimatkan memori dan jalur lebar; 3. Gunakan strategi cache yang munasabah, seperti cache sekunder doktrin atau hasil pertanyaan frekuensi tinggi Cache; 4. Mengoptimumkan kitaran hayat entiti dan panggilan jelas () secara teratur untuk membebaskan memori untuk mengelakkan limpahan memori; 5. Memastikan indeks pangkalan data wujud dan menganalisis penyata SQL yang dihasilkan untuk mengelakkan pertanyaan yang tidak cekap; 6. Lumpuhkan penjejakan perubahan automatik dalam senario di mana perubahan tidak diperlukan, dan gunakan array atau mod ringan untuk meningkatkan prestasi. Penggunaan ORM yang betul memerlukan menggabungkan pemantauan SQL, caching, pemprosesan batch dan pengoptimuman yang sesuai untuk memastikan prestasi aplikasi sambil mengekalkan kecekapan pembangunan.

ReadonlypropertiesinPHP8.2canonlybeassignedonceintheconstructororatdeclarationandcannotbemodifiedafterward,enforcingimmutabilityatthelanguagelevel.2.Toachievedeepimmutability,wrapmutabletypeslikearraysinArrayObjectorusecustomimmutablecollectionssucha

Laravel menyokong penggunaan pertanyaan SQL asli, tetapi parameter mengikat harus lebih disukai untuk memastikan keselamatan; 1. Gunakan db :: pilih () untuk melaksanakan pertanyaan pilih dengan parameter mengikat untuk mencegah suntikan SQL; 2. Gunakan db :: kemas kini () untuk melaksanakan operasi kemas kini dan mengembalikan bilangan baris yang terjejas; 3. Gunakan db :: masukkan () untuk memasukkan data; 4. Gunakan db :: padam () untuk memadam data; 5. Gunakan db :: pernyataan () untuk melaksanakan pernyataan SQL tanpa set keputusan seperti membuat, mengubah, dan sebagainya; 6. Adalah disyorkan untuk menggunakan Whereraw, SelectRaw dan kaedah lain dalam QueryBuilder untuk menggabungkan ungkapan asli untuk meningkatkan keselamatan

Go Generik disokong sejak 1.18 dan digunakan untuk menulis kod generik untuk jenis selamat. 1. Fungsi generik printslice [tany] (s [] t) boleh mencetak kepingan mana -mana jenis, seperti [] int atau [] rentetan. 2. Melalui had bilangan kekangan jenis t ke jenis angka seperti int dan float, jumlah [tnumber] (slice [] t) t Summation selamat direalisasikan. 3. Struktur generik Typebox [Tany] struct {valuet} boleh merangkum sebarang nilai jenis dan digunakan dengan pembina kotak baru [Tany] (Vt)*. 4. Tambahkan set (vt) dan dapatkan () kaedah t untuk kotak [t] tanpa

Layout Jadual: Tetap akan memaksa lebar lajur jadual ditentukan oleh lebar sel baris pertama untuk mengelakkan kandungan yang mempengaruhi susun atur. 1. Tetapkan jadual-Layout: Tetapkan dan tentukan lebar jadual; 2. Tetapkan nisbah lebar lajur tertentu untuk baris pertama th/td; 3. Gunakan ruang putih: nowrap, limpahan: tersembunyi dan teks-overflow: ellipsis untuk mengawal limpahan teks; 4. Berkenaan dengan pengurusan latar belakang, laporan data dan senario lain yang memerlukan susun atur yang stabil dan rendering berprestasi tinggi, yang secara efektif dapat menghalang susun atur susun atur dan meningkatkan kecekapan rendering.

Gunakan Junit5 dan Mockito untuk mengasingkan kebergantungan secara berkesan untuk ujian unit. 1. Buat objek mengejek melalui @mock, @Injectmocks menyuntik contoh yang diuji, @extendwith membolehkan lanjutan Mockito; 2. Gunakan bila (). KemudianReturn () untuk menentukan tingkah laku simulasi, sahkan () untuk mengesahkan bilangan panggilan dan parameter; 3. Boleh mensimulasikan senario pengecualian dan mengesahkan pengendalian ralat; 4. Mengesyorkan suntikan pembina, elakkan daripada simulasi, dan mengekalkan atom ujian; 5. Gunakan assertAll () untuk menggabungkan pernyataan, dan @nested menganjurkan senario ujian untuk meningkatkan penguraikan ujian dan kebolehpercayaan.

ChoosetheapproprateindextypebasedOnusecase, suchassinglefield, compound, multikey, text, geospatial, orttlindexes.2.aplytheesrrulewhencreatinginginginDexesbyorderingfieldsasequaly, sort, thenrange

json.loads () digunakan untuk menghuraikan rentetan json ke dalam struktur data python. 1. Input mestilah rentetan yang dibungkus dalam petikan berganda dan nilai boolean adalah benar/palsu; 2. Menyokong penukaran automatik Null → Tiada, Objek → Dict, Array → List, dan sebagainya; 3. Ia sering digunakan untuk memproses rentetan JSON yang dikembalikan oleh API. Sebagai contoh, response_string boleh diakses secara langsung selepas parsing oleh json.loads (). Apabila menggunakannya, anda mesti memastikan bahawa format JSON betul, jika tidak, pengecualian akan dibuang.
