Category: CPP
-

Static cast ile reinterpret cast arasındaki fark
https://stackoverflow.com/questions/573294/when-to-use-reinterpret-cast The short answer: If you don’t know what reinterpret_cast stands for, don’t use it. If you will need it in the future, you will know. Full answer: Let’s consider basic number types. When you convert for example int(12) to float (12.0f) your processor needs to invoke some calculations as both numbers have different bit representation. This is what static_cast stands for. On the…
-

Containers
Standard Library Array Vector https://stackoverflow.com/questions/200384/what-is-constant-amortized-time Forward List tek taraflı linked list https://nitishhsinghhh.medium.com/introduction-to-forward-list-in-c-stl-and-important-functions-217fd4d0af59 List double linked list https://hackingcpp.com/cpp/std/sequence_containers.html https://hackingcpp.com/cpp/std/associative_containers.html List Operations Deque Tree Data Structure Sets Map Maps and Insertion Maps in C++17 Multiset and Multimap Searching Multimap Unordered Associative Containers Associative Containers and Custom Types Nested Maps Queues Priority Queues Stack Emplacement Mastermind Game Practical
-

Algorithms & Lambda Expressions
Algorithms Overview En çok kullanılan bir takım algoritmalar STL kütüphanesinde bulunmaktadır. Bunlar iyi implemente ve test edilmiş algoritmalar olup hali hazırda kullandığımız container’larla da uyumludur. Algorithms with Predicates A predicate is a C++ function returning a boolean or an object having a bool operator() member. A unary predicate takes one argument, a binary takes two, and so…
-

Special Member Functions and Operator Overloading
Constructor Objenin oluşturulma aşamasında çalışan ve gerekli atamalarla işlemleri yapan fonksiyondur. Sınıfın member variable’larına constructor içerisinde ilk değer ataması yapılır. C++ 11 den itibaren ilk değer atamısını constructor kullanmadan yapabiliriz: Constructor delegation Bir constructor’den başka bir constructor’ı çağırıp kod tekrarını minimize etmek amaçlanır. Constructor types Copy Constructor Var olan bir nesneden başka bir nesneyi initialize…
-

Files and Streams
File Stream Streams and Buffering C++’da stream’ler buffering yapar. Bunun temel amacı sistem çağrılarını minimize etmektir. Yazma operasyonlarında veri, bellekteki buffer’a yazılır. Buffer dolduğunda ise veri işletim sistemine gönderilir. Bu duruma “flushing” denilir. Ne zaman flush yapılır? manual olarak flush yapabiliriz: endl equivalent of “\n” << flush Unbuffered Input and Output File Modes ios::in Open…
-

Strings
Basic String Operations substr() Returns a newly constructed string object with its value initialized to a copy of a substring of this object. [1] Constructors Searching Strings find & rfind Bir string içerisinde aranması istenilen karakter veya string’in indeksini döndürür. Eğer aranan şey string içerisinde yoksa std::string::npos döndürür. rfind, find gibi çalışır. Tek farkı sondan başa doğru…
-
Move Semantics
Move Semantics Bir objeden başka bir objeye kaynakların verimli bir şekilde aktarılmasını sağlar. Örneğin garajınızda bir arabanız var. Anahtarını arkadaşınıza verip “artık bu senin” diyorsunuz. Artık bir arabanız yok ve arabayı tekrardan kullanmak için arkadaşınızın anahtarı geri vermesi gerekli. Arabayı arkadaşınıza vermek için bir kopya oluşturmadınız onun yerine var olanı transfer ettiniz. Value Semantics Verileri…
-

-

Fonksiyonlar
Şuana kadar kodlarımızı main fonksiyonunun içine yazdık. Şimdi işleri daha da kolaylaştırmak için başka fonksiyonlar yazacağız. ilk başta olayları daha karmaşık hale getirdiğimizi düşünebilirsiniz ama aslında kolaylaştırdık. gördüğünüz üzere fonksiyonları kullanmak kodumuzu daha uzun belki de daha karmaşık hale getirdi. Muhtemelen şuanlık yazacağımız çoğu ufacık programda fonksiyon yazmak bize büyük bir avantaj sağlamayacaktır. Fonksiyonel programlamanın…
-

Operators
operatörler aslında birer fonksiyondur. Sentetik şeker gibi davranırlar. 2 tane tam sayının arasında bulunan + bir operatördür. Arka plana bakarsak bu 2 sayı alan bir fonksiyondan başka bir şey değildir. Assignment Operator = Sağ taraftaki değeri sol taraftaki değişkene atar. Arithmetic Operators +, -, *, /, % Temel matematiksel işlemleri bu operatörlerle yapıyoruz. Compound assignment…
-

Döngüler
Aynı işlemi tekrar tekrar yapmak istiyorsak döngüleri kullanıyoruz. goto goto deyimi bir satırdan başka bir satıra atlamak için kullanılır. Aşağıdaki kodda loop: bir etikettir. Etikette farklı bir isim de kullanabiliriz. goto loop; ifadesin çalıştığında programımız etiketin bulunduğu satırdan çalışmaya devam edecek. goto deyimini yasak elma gibi düşünebilirsiniz. Evet goto yu kullanabilirsiniz ama bu devamında sizi…
-

Karar yapıları
Programımızdaki ifadeler normalde sırasıyla yukarıdan aşağıya doğru tek tek çalışır. Bazı durumlarda bu akışı bozmak, farklı satırlara yönlendirmek isteriz. Bunu gerçekleştirmek için çeşitli karar yapılarımız vardır. if, else, else if Eğer bazı kodların çalışması, bir koşulun varlığına bağlı ise if yapısını kullanıyoruz. “Eğer” anlamına gelir. Şimdi yapısını inceleyelim. if ten sonra 2 tane parantezimiz var.…
-

Merhaba Variables
Şimdi ekrana bir şeyler yazdıralım Bunu daha kompakt bir hale getirelim daha da Şimdi ise isim değişkenine konsoldan yazacağımız değeri atayalım. Değişkenler, veri tutar. Bu veriyi bellekte saklar. Bilgisayarı en temelde 2 elemana indirgeyebiliriz. Bir işlemci(CPU), bir bellek(RAM) ve aralarındaki kablolar (bus) İşlemci, bellekten programı okur ve verilen komutlara göre veriyi manipüle eder. Verilerimiz bellekte…
-

Merhaba C++
Kurulum https://learn.microsoft.com/en-us/cpp/build/vscpp-step-0-installation?view=msvc-170 İlk kodumuz Proje oluşturma Programı çalıştırma Bu template de karşımıza konsol ekranına “Hello World!” yazdıran bir uygulama geliyor. Eğer editörün üst tarafındaki yeşil play üçgenine tıklarsanız kod çalışacaktır. Türkçe karakterler ve encoding Yorum satırlarımızda çeşitli Türkçe karakterler kullandık (ş,ı,ü,ö, gibi). Kodumuzu çalıştırdığımızda aşağıdaki gibi bir pencere gelebilir. Burada bu karakterlerin şuandaki formatta kaydedilemeyeceğini…
-

Hello Variables
In previous lecture we use our first variable std::string name = “C++”; and std::string greeting Numbers We can store our text data inside string. If we want to store a number we can use int or float int use 4 byte of memory and also float use 4 byte of memory BUT integer holds integer…
-

Hello C++
Installation https://learn.microsoft.com/en-us/cpp/build/vscpp-step-0-installation?view=msvc-170 Our first program This template gives you the code that will print “Hello World!” on the console screen. You can run program by clicking run button (green triangle on the top side of the screen) Now we can investigate the code: When we press the run button we will take this output: We…
