STD :: Chronoは、現(xiàn)在の時(shí)間の取得、実行時(shí)間の測定、操作時(shí)點(diǎn)と期間の測定、分析時(shí)間のフォーマットなど、時(shí)間の処理にCで使用されます。 1。STD:: Chrono :: System_Clock :: now()を使用して、現(xiàn)在の時(shí)間を取得します。 2。STD:: CHRONO :: STEADY_CLOCKを使用して実行時(shí)間を測定して単調(diào)さを確保し、DurateR_CASTを通じてミリ秒、秒、その他のユニットに変換します。 3.時(shí)點(diǎn)(Time_Point)と期間(期間)は相互運(yùn)用可能に動作できますが、ユニットの互換性と時(shí)計(jì)エポックの違いに注意してください。 4。C20は、時(shí)間のフォーマットと解析をサポートし、C 20のコンパイラのサポートに依存して、STD :: FormatとSTD :: Parseを使用する必要があります。
Cでstd::chrono
を使用することは、それを手に入れると本當(dāng)に便利です。それは標(biāo)準(zhǔn)的なライブラリの一部であり、時(shí)間を処理するための堅(jiān)実なツールを提供します - それが期間を測定したり、タイムスタンプを使用したり、C 20以降のタイムゾーンを扱ったりするかどうかです。

現(xiàn)在の時(shí)間を取得します
現(xiàn)在の時(shí)點(diǎn)をつかむには、通常std::chrono::system_clock::now()
を使用します。これにより、今すぐ表現(xiàn)しているtime_point
が得られます。
Auto Now = std :: Chrono :: System_Clock :: now();
これは、何かがどれだけの時(shí)間がかかるか、単にタイムスタンプを記録するかを測定するときによく使用されます。文字列のような読みやすいものに変換する必要がある場合は、通常、それをtime_t
に変換し、 ctime
などを使用します。

std :: time_t now_c = std :: chrono :: system_clock :: to_time_t(now); std :: cout << "現(xiàn)在の時(shí)刻:" << std :: ctime(&now_c);
System_Clockは単調(diào)ではないかもしれないことに留意してください。誰かがシステム時(shí)間を変更すると、前方または後方にジャンプする可能性があります。タイミングのために、読んでください。
実行時(shí)間を正確に測定します
コードの実行期間を測定したい場合、 steady_clock
はあなたの友達(dá)です。それは単調(diào)であり(後退しません)、タイミングが安全になります。

これが一般的なパターンです:
auto start = std :: chrono :: steady_clock :: now(); // ...いくつかの仕事をしてください... auto end = std :: Chrono :: Steady_Clock :: now(); 自動期間=終了-Start;
これを數(shù)百萬秒または秒で表示したい場合は、 duration_cast
を使用してキャストします。
Auto MS = STD :: CHRONO :: DUTERURE_CAST <STD :: CHRONO :: MILLISECONDS>(duration).count(); std :: cout << "take" << ms << "ms \ n";
また、 microseconds
、 nanoseconds
、またはseconds
を使用することもできます。より高い精度(ナノ秒など)から低い(秒など)に変換すると、適切にキャストされない限り切り捨てられることに注意してください。
時(shí)點(diǎn)と期間で作業(yè)します
- time_pointは特定の瞬間です。
- 期間は時(shí)間範(fàn)囲(5秒など)です。
それらは別々のタイプですが、一緒に働きます。 Time_pointに期間を追加して、新しいtime_pointを取得できます。
auto then = now std :: chrono :: hours(2);
これは、イベントをスケジュールしたり、特定の時(shí)間まで待つときに便利です。操作の両側(cè)が互換性のあるユニットを使用していることを確認(rèn)してください。時(shí)間と百萬秒を混合することはエラーを引き起こしませんが、明示的に変換されない限り、期待していない場合があります。
また、すべてのクロックがゼロから始まると仮定しないでください - それらの時(shí)代(出発點(diǎn))は異なります:
-
system_clock
通常、1970年に(UNIX Timeなど)に始まります。 -
steady_clock
には任意のエポックがあるため、実行中のTime_Pointを比較することは意味がありません。
フォーマットと解析時(shí)間(C 20)
C 20を使用すると、 <chrono>
日付と時(shí)間のフォーマットを直接フォーマットするためのより良いサポートを得ました。
Auto Now = std :: Chrono :: System_Clock :: now(); std :: cout << "フォーマット:" << std :: format( "{:%y-%m-%d%h:%m}"、now)<< "\ n";
タイム文字列の解析も可能になりました:
STD :: ISTRINGSTREAM SS( "2024-03-15 12:30"); STD :: Chrono :: System_Clock :: Time_Point TP; ss >> std :: parse( "%y-%m-%d%h:%m"、tp);
これは、タイムスタンプを使用してログまたは構(gòu)成ファイルを読み取るときに非常に役立ちます。ただし、これらの機(jī)能にはC 20と優(yōu)れたコンパイラサポートが必要です(GCC 13、Clang 15、または最新のSTLを使用したMSVCなど)。
ええ、 std::chrono
基本的なタイプと各クロックをいつ使用するかを理解すると、かなり強(qiáng)力です。それほど難しくない、最初は少し簡単に混同するのは少し簡単です。
以上がcの詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國語 Web サイトの他の関連記事を參照してください。

ホットAIツール

Undress AI Tool
脫衣畫像を無料で

Undresser.AI Undress
リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover
寫真から衣服を削除するオンライン AI ツール。

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中國語版
中國語版、とても使いやすい

ゼンドスタジオ 13.0.1
強(qiáng)力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック

n 1クエリの問題を避け、関連するデータを事前にロードすることにより、データベースクエリの數(shù)を減らします。 2.必要なフィールドのみを選択して、メモリと帯域幅を保存するために完全なエンティティをロードしないようにします。 3. DoctrineのセカンダリキャッシュやRedis Cacheの高周波クエリ結(jié)果など、キャッシュ戦略を合理的に使用します。 4.エンティティのライフサイクルを最適化し、クリア()を定期的に呼び出してメモリを解放してメモリオーバーフローを防ぎます。 5.データベースインデックスが存在し、生成されたSQLステートメントを分析して、非効率的なクエリを避けます。 6.変更が不要なシナリオで自動変更追跡を無効にし、パフォーマンスを改善するためにアレイまたは軽量モードを使用します。 ORMを正しく使用するには、SQLモニタリング、キャッシュ、バッチ処理、適切な最適化を組み合わせて、開発効率を維持しながらアプリケーションのパフォーマンスを確保する必要があります。

readonlypropertiesinphp8.2canonlybeassignedonedonedontheconstructoraturatiddeclaration andcannotBemodifiedifiedifiedifiedifiedifiedifiedifiadtivedabilityattthelanguagelele.2.

Laravelは、ネイティブSQLクエリの使用をサポートしていますが、安全性を確保するためにパラメーターバインディングを優(yōu)先する必要があります。 1。DB:: Select()を使用して、SQL注入を防ぐためにパラメーターバインディングを使用して選択クエリを?qū)g行します。 2。db:: update()を使用して更新操作を?qū)g行し、影響を受ける行の數(shù)を返します。 3。DB::挿入()を使用してデータを挿入します。 4。db:: delete()を使用してデータを削除します。 5。DB:: Statement()を使用して、Create、Alterなどの結(jié)果セットなしでSQLステートメントを?qū)g行します。 6. QueryBuilderでWhereraw、SelectRaw、およびその他の方法を使用して、ネイティブ表現(xiàn)を組み合わせてセキュリティを改善することをお勧めします

テーブルレイアウト:固定は、レイアウトに影響するコンテンツを避けるために、最初の行のセル幅によってテーブル列の幅を強(qiáng)制的に決定します。 1.テーブルレイアウトの設(shè)定:テーブル幅を修正して指定します。 2.最初の行th/tdの特定の列幅比を設(shè)定します。 3。ホワイトスペースを使用:Nowrap、Overflow:Hidden and Text-Overflow:Ellipsisを使用してテキストオーバーフローを制御します。 4。安定したレイアウトと高性能レンダリングを必要とするバックグラウンド管理、データレポート、およびその他のシナリオに適用できます。これは、レイアウトジッターを効果的に防止し、レンダリング効率を向上させることができます。

Junit5とMockitoを使用して、単體テストの依存関係を効果的に分離します。 1. @mockを介して模擬オブジェクトを作成します。@injectmocksテスト済みインスタンスを挿入@extendwithを有効にします。 2。when()。sonreturn()を使用してシミュレーションの動作を定義し、()を検証してメソッド呼び出しとパラメーターの數(shù)を確認(rèn)します。 3。例外シナリオをシミュレートし、エラー処理を確認(rèn)できます。 4.コンストラクターの注入を推奨し、過剰なシミュレーションを避け、テスト原子性を維持します。 5。ASSERTALL()を使用してアサーションをマージし、@Nestedはテストシナリオを整理して、テストの保守性と信頼性を向上させます。

選択することは、shoseTheatheApsoSOFRISTEXTYPEBASEDONUSECASE、TINGASSINGLEFIELD、化合物、マルチケイ、テキスト、GEOSPATIAL、ORTTLINDEXES.2.APPLYTHEESRRULEWHENCREATINGCOMPoundExes

json.loads()は、JSON文字列をPythonデータ構(gòu)造に解析するために使用されます。 1.入力は二重引用符で包まれた文字列でなければならず、ブール値は真/falseです。 2。NULL→なし、オブジェクト→DICT、配列→リストなどの自動変換をサポートします。 3. APIで返されるJSON文字列を処理するためによく使用されます。たとえば、response_stringは、json.loads()で解析した後に直接アクセスできます。それを使用する場合、JSON形式が正しいことを確認(rèn)する必要があります。そうしないと、例外がスローされます。
