C++ 'da yeni ve kütüphanesi hakkında pek bir şey bilmiyorum. Ben milisaniye şimdiki zaman elde etmek için hangi farklı sıralama algoritmaları, zaman analizi yapmak gerekir. Bunu yapmanın bir yolu var mı?Geçerli saati milisaniye cinsinden nasıl alabilirim?
cevap
Yalnızca std::chrono'u kullanın. kez "1000 yıldızlı baskı" görevi feryat genel örnek:
#include <iostream>
#include <ctime>
#include <ratio>
#include <chrono>
int main()
{
using namespace std::chrono;
high_resolution_clock::time_point t1 = high_resolution_clock::now();
std::cout << "printing out 1000 stars...\n";
for (int i=0; i<1000; ++i) std::cout << "*";
std::cout << std::endl;
high_resolution_clock::time_point t2 = high_resolution_clock::now();
duration<double, std::milli> time_span = t2 - t1;
std::cout << "It took me " << time_span.count() << " milliseconds.";
std::cout << std::endl;
return 0;
}
yerine yıldızlı baskı, oradaki sıralama algoritması yerleştirecektir ve zaman bunu ölçmek.
, ör bazı kıyaslama yapmak niyetinde ise, derleyici optimizasyon bayrakları etkinleştirmek unutmayın g++ için -O3
gerekir. Why emplace_back is faster than push_back?
Ps: senin derleyici sonra benim Time Measurements (C++) diğer yöntemlerle içine bakmak olabilir, c++11 desteklemiyorsa Bu ciddi, öyle yapmadım zaman bana ne olduğunu kontrol edin.
#include <iostream>
#include <ctime>
#include <ratio>
#include <chrono>
void quickSort(int a[], int first, int last);
int pivot(int a[], int first, int last);
void swap(int& a, int& b);
void swapNoTemp(int& a, int& b);
using namespace std;
using namespace std::chrono;
int main()
{
int test[] = { 7, -13, 1, 3, 10, 5, 2, 4 };
int N = sizeof(test)/sizeof(int);
cout << "Size of test array :" << N << endl;
high_resolution_clock::time_point t1 = high_resolution_clock::now();
// I want to measure quicksort
quickSort(test, 0, N-1);
high_resolution_clock::time_point t2 = high_resolution_clock::now();
duration<double> time_span = t2 - t1;
std::cout << "It took me " << time_span.count() << " seconds.";
std::cout << std::endl;
return 0;
}
ve çıkış şimdi:
spesifik (oyuncak) örneği kullanarak benim Quicksort (C++) olurdu
Georgioss-MacBook-Pro:~ gsamaras$ g++ -Wall -std=c++11 -O3 main.cpp
Georgioss-MacBook-Pro:~ gsamaras$ ./a.out
Size of test array :8
It took me 3.58e-07 seconds.
Bu kadar basit. Mutlu kıyaslama! =)
DÜZENLEME:
high_resolution_clock::now()
fonksiyonu olan bir süre için zaman göreceli olarak döner? std::chrono itibaren
:
: std içineZaman
sonraki tren geçer kişinin doğum günü, bugünün şafak veya zaman gibi zaman içinde belirli bir noktada yapılan bir başvuru, işaret ediyor. Bu kitaplığında, time_point sınıf şablonunun nesneleri, epoch (aynı saat kullanılarak tüm time_point nesnelerinin ortak olduğu zaman zamanında sabit bir noktadır) kullanarak bir süreyi kullanarak bunu ile ifade eder. bir çıkışı bu epoch and time_point example, kontrol edebilir
time_point tp is: Thu Jan 01 01:00:01 1970
Çözüm için teşekkürler gsamaras. –
İlk satır kodunuzu, herhangi bir açık döküm olmaksızın çift milisaniye olarak atayarak basitleştirebilirsiniz: 'duration
@HowardHinnant Yorumunuz ve videonuzda havalı ipuçları! Teşekkür ederim. Cevabımı güncelledim, şimdi beğeneceğinizi umuyoruz. =) – gsamaras
- 1. Milisaniye miktarını dakika cinsinden nasıl biçimlendiririm: saniye: PHP cinsinden milisaniye?
- 2. GMT zamanını, Date_Time desteğini kullanarak milisaniye cinsinden nasıl alabilirim?
- 3. SetInterval neden milisaniye cinsinden değil?
- 4. Ssms cinsinden yürütme süresini milisaniye cinsinden nasıl gösterebilirim?
- 5. Python'da milisaniye cinsinden nasıl bir tarih ayırabilirim?
- 6. milisaniye cinsinden iki kez nasıl okuma yapabilirim?
- 7. Geçerli saati Delphi'de farklı bir TimeZone'da nasıl alabilirim?
- 8. Raylar: Geçerli saat dilimimde saati göstermek için created_at'ı nasıl alabilirim?
- 9. Android'de mevcut saati nasıl alabilirim?
- 10. javascript ayrıştırma süresi (dakika: saniye) milisaniye cinsinden
- 11. İki DateTime örneğinin farkını milisaniye cinsinden alma
- 12. milisaniye
- 13. Geçerli saati VB.NET'te alın
- 14. C++ chrono duration_cast milisaniye saniye cinsinden sonuçlar
- 15. HTTP If-Modified-Since Milisaniye cinsinden
- 16. Özel Tarih ve Saat Milisaniye cinsinden dize
- 17. C++ milisaniye cinsinden chrono sistem zamanı, saat işlemleri
- 18. SpVoice kullanarak C# cinsinden milisaniye sessizlik nasıl okunur?
- 19. GWT'yi kullanarak GMT'de saati nasıl alabilirim?
- 20. Geçerli tarih ve saati alın
- 21. Senkronizasyon geçerli saati kullanarak görüntüler
- 22. Ortalama dize uzunluğunu mysql cinsinden nasıl alabilirim?
- 23. Dize boyutunu bayt cinsinden nasıl alabilirim?
- 24. Geçerli kullanıcıyı Liferay'de nasıl alabilirim?
- 25. C'deki unix zaman damgasını int cinsinden nasıl alabilirim?
- 26. Destek süresini kullanarak milisaniye cinsinden süreyi değiştirme :: date_time kitaplığı
- 27. mysql sorgu yürütme süresi - bunu milisaniye cinsinden alabilir miyim?
- 28. Geçerli Tarih/saati DD/AA/YYYY HH: MM formatında nasıl alabilirim?
- 29. Günlük mesajından önceki geçerli saati ekle
- 30. HTML5: CurrentTime ve ses etiketi süresini milisaniye olarak nasıl alabilirim
göz :: chorno – DanielCollier
algoritmaları sıralama analizi için, milisaniye yeterince düşük çözünürlük ve "şimdiki zaman" değil mi' olmayabilir t gerçekten neye ihtiyacın var. Bir görevi yerine getirmek için göreceli bir zaman istersiniz. std :: chrono :: high_resolution_clock' muhtemelen istediğiniz şeydir. – Chad
Teşekkürler gsamaras için çözüm, sadece küçük şüphe, yorumlarda yukarıda birisi olarak göreceli bir zaman olduğunu belirtti, java şu anki saat 1sr Ocak 1970 den hesaplanır, bu yüzden high_resolution_clock :: now() işlevi zamana göre döndürür hangi zaman? –