Necati Ergin tarafından verilen online C++ Kursu 12 Eylül 2020 tarihinde başlıyor. Kursun toplam süresi 160 saat. Dersler Cumartesi ve Pazar günleri saat 14.00
Etiket: C++17
C++ çalışma sorusu – 65 (variadic templates)
Aşağıdaki C++ programı çalıştırıldığında bu programın çıktısı ne olur?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
template<typename T, typename ...Args> T sum(T val, Args... args) { return val + sum<T>(args...); } #include <iostream> int main() { auto n1 = sum(0.25, 1, 0.75, 1); auto n2 = sum(1, 0.5, 1, 0.5); std::cout << n1 << n2; } |
Sorunun yanıtı şu seçeneklerden biri de olabilir: Sentaks hatası (derleme zamanı hatası) Tanımsız davranış.
verim, performans, veri yapıları ve algoritmalar
Verim (efficiency) ile performans (performance) sıklıkla birbiriyle karıştırılıyor. Verim bir görevin gerçekleştirilmesi için ne kadar iş yapıldığı anlamına geliyor. Yani aynı görevi gerçekleştirmek için ne
modern c++ öğeleri
Aşağıdaki kodda C++11 ve daha sonraki standartlar ile dile eklenmiş araçları ve standart kütüphane öğelerini belirtebilir misiniz?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
#include <chrono> #include <random> #include <algorithm> #include <vector> #include <iostream> const auto benchmark = [](auto f) { const auto time{ std::chrono::steady_clock::now() }; f(); return std::chrono::steady_clock::now() - time; }; int main() { std::default_random_engine eng{ std::random_device{}() }; std::uniform_int_distribution dist{ 0, 1'000'000 }; std::vector<int> ivec(100'000); std::generate_n(ivec.begin(), 100'000, [&] {return dist(eng); }); auto f = [&ivec]() {std::sort(ivec.begin(), ivec.end()); }; auto tp = benchmark(f); std::cout << std::chrono::duration_cast<std::chrono::seconds>(tp).count() << "\n"; } |
C++ çalışma sorusu – 60 (std::max, std::min)
C++17 standartlarına göre aşağıdaki C++ programı çalıştırıldığında bu programın çıktısı ne olur?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#include <algorithm> #include <iostream> #include <string> int main() { std::string s1{ "AA" }; std::string s2{ "AA" }; const auto &smax{ std::max(s1, s2) }; const auto &smin{ std::min(s1, s2) }; s1 += "A"; s2 += "B"; std::cout << smax << smin; } |
Sorunun yanıtı şu seçeneklerden biri de olabilir: Sentaks hatası (derleme zamanı
C++ çalışma sorusu – 59 (function overloading)
C++17 standartlarına göre aşağıdaki C++ programı çalıştırıldığında bu programın çıktısı ne olur?
1 2 3 4 5 6 7 8 9 10 |
#include <iostream> void func(char* &) { std::cout << 'A'; } void func(char* &&) { std::cout << 'B'; } int main() { char c{ 'c' }; func(&c); } |
Sorunun yanıtı şu seçeneklerden biri de olabilir: Sentaks hatası (derleme zamanı
C++ çalışma sorusu – 58 (special members)
C++17 standartlarına göre aşağıdaki C++ programı çalıştırıldığında bu programın çıktısı ne olur?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#include <iostream> class Nec { public: Nec() { std::cout << "A"; } Nec(const Nec&) { std::cout << "B"; } Nec(Nec&&) { std::cout << "C"; } ~Nec() { std::cout << "D"; } }; Nec func() { return Nec{}; } int main() { func(); } |
Sorunun yanıtı şu seçeneklerden biri de olabilir: Sentaks hatası (derleme zamanı
C++ çalışma sorusu 57 (operator bool)
C++17 standartlarına göre aşağıdaki C++ programı çalıştırıldığında bu programın çıktısı ne olur?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
class Nec { public: Nec(int x) : mx{x} {} operator bool() const { return mx >= 0;} private: int mx; }; #include <iostream> int main() { Nec n1{ 0 }, n2{ 2 }; std::cout << n1 + n2 << (n1 == n2); } |
Sorunun yanıtı şu seçeneklerden biri de olabilir: Sentaks hatası (derleme zamanı
std::any sınıfı
Öyle bir nesne olsun ki istediğimiz herhangi türden bir değeri tutabilsin. İstediğimiz zaman nesnemizin tuttuğu değeri herhangi türden bir değer olarak değiştirebilelim. C++17 standartları ile
std::byte türü
C++17 standartları ile dile eklenen yeni türlerden biri std::byte. Yazdığımız programlar bellekteki byte’ları kullanıyor. std::byte türünün amacı bu bellek byte‘larını oldukları gibi temsil etmek. Burada