C/C++’ı neden çoğu insanın sevmediğine ve bazı algoritmacılarında taptığına ilişkin iste size bir kaç örnek:
İki farklı değişkendeki değerleri birbirleriyle değiştirmek (swap) istiyorsanız bunu nasıl yaparsınız? Geçici bir değişken kullanarak yaparsınız değil mi? C++’da geçici değişken kullanmadan da yapılabiliyormuş:
int swap(int& a,int& b) {
a ^= b ^= a ^= b;
}
Bu kod C++’da doğru Java’da yanlış çalışıyor.
İki farklı sayıyı bölen en büyük sayıya iki sayının OBEB’i denir. OBEB bulmak için kodlaması en kolay yöntem Euclid algoritmasıdır. Büyük sayı küçüğe bölünür, kalan sıfır değilse küçük sayı kalana bölünür ve bu işlem kalan 0 olana kadar devam ettirilir. Kalan 0 olduğu zaman OBEB bir önceki kalana eşittir.
Bunu kodlamak kolay fakat C/C++’da bu işlem tek bir for döngüsünde halledilebiliyor.
int obeb(int M,int N) {
for (int r=M;r!=0;r=M%N,M=N,N=r);
return M;
}
C/C++ stili for döngüsü tartışmasız en mükemmeli.