Çok eski bir web tarayıcısı kullanıyorsunuz. Bu veya diğer siteleri görüntülemekte sorunlar yaşayabilirsiniz.. Tarayıcınızı güncellemeli veya alternatif bir tarayıcı kullanmalısınız.
ÇözüldüMax item 200.000 stack için hangi veri türü mantıklı?
Bu konu çözüme ulaştırılmıştır. Çözüm için konuya yazılan tüm yorumları okumayı unutmayın. Eğer konudaki yorumlar sorununuzu çözmediyse yeni bir konu açabilirsiniz.
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Şuan short kullanıyorum 65.535 sınırı var 200.000 yapmak istiyorum, bunun bir üstü 2.147.483.647 da fazla değer aralığı başka çözümü yok mudur?
zaten sınırlandırıyorum ama bu kadar değer fazla veri türü kullanmak istemiyorum.
Eğer yaptığın işlemler uygunsa bu yöntemi kullanabilirsin; standart bir veri tipi kullanmak yerine length.h içindeki GOLD_MAX verisi gibi kendi sabit verini oluşturup üst sınır olarak kullanabilirsin.
Bunun dışında alternatif var elbette ancak gereksiz kod kalabalığı getirecektir.
Eğer yaptığın işlemler uygunsa bu yöntemi kullanabilirsin; standart bir veri tipi kullanmak yerine length.h içindeki GOLD_MAX verisi gibi kendi sabit verini oluşturup üst sınır olarak kullanabilirsin.
Bunun dışında alternatif var elbette ancak gereksiz kod kalabalığı getirecektir.
Eğer yaptığın işlemler uygunsa bu yöntemi kullanabilirsin; standart bir veri tipi kullanmak yerine length.h içindeki GOLD_MAX verisi gibi kendi sabit verini oluşturup üst sınır olarak kullanabilirsin.
Bunun dışında alternatif var elbette ancak gereksiz kod kalabalığı getirecektir.
Evet, enum içinde olduğunu unutmuşum bir anlığına kusura bakma. Bunun haricinde kullanabileceğin iki yöntem var:
1-) Kendi sınıfını/yapını oluşturmak. Ki bu çok zahmetlidir çünkü kendi veri tipini oluşturacağın için tüm mantıksal operatörleri de elle tanıtman gerekecek.
2-) Adrese başvurmadanconstexpr kullanmak.
Sabit bir değer olarak tanımlandığı ve çalışma zamanında değiştirilmeye vb. çalışılmadığı sürece derleyici tarafından programa bir değişken olarak(int, long vb.) değil, sabit bir veri olarak gömülür. Kullanılan senaryolara göre belleği kullanır veya kullanmaz.
Mesela:
C++:
constexpr int a = 10;
int b = 5;
TraceError("%d", a + b);
Burada b değişkeni için mutlak bellek tahsis edilmişken(int), a değişkeni bir sabit değer olarak tutulur. Ve burada çıktı 15 olur.
Yani burada kısaca, bir int ile bir sabit değeri toplamış oluyoruz.
Ancak & gibi operatörler ile adres çekersen;
C++:
constexpr int a = 10;
int b = 5;
TraceError("%d", &a + b);
Bu durumda program bellek adresini çekmek zorunda olacağı için hem sonuç farklı olacak, hem de sıradan bir "int" tanımı gibi otomatik olarak bellekte yer tahsis edilmiş olacak.
Adrese başvurmadan sadece sabit bir üst sınır olarak kullanıldığında sıradan int tanımına göre daha kullanışlı olabilir diye düşünüyorum.
Evet, enum içinde olduğunu unutmuşum bir anlığına kusura bakma. Bunun haricinde kullanabileceğin iki yöntem var:
1-) Kendi sınıfını/yapını oluşturmak. Ki bu çok zahmetlidir çünkü kendi veri tipini oluşturacağın için tüm mantıksal operatörleri de elle tanıtman gerekecek.
2-) Adrese başvurmadanconstexpr kullanmak.
Sabit bir değer olarak tanımlandığı ve çalışma zamanında değiştirilmeye vb. çalışılmadığı sürece derleyici tarafından programa bir değişken olarak(int, long vb.) değil, sabit bir veri olarak gömülür. Kullanılan senaryolara göre belleği kullanır veya kullanmaz.
Mesela:
C++:
constexpr int a = 10;
int b = 5;
TraceError("%d", a + b);
Burada b değişkeni için mutlak bellek tahsis edilmişken(int), a değişkeni bir sabit değer olarak tutulur. Ve burada çıktı 15 olur.
Yani burada kısaca, bir int ile bir sabit değeri toplamış oluyoruz.
Ancak & gibi operatörler ile adres çekersen;
C++:
constexpr int a = 10;
int b = 5;
TraceError("%d", &a + b);
Bu durumda program bellek adresini çekmek zorunda olacağı için hem sonuç farklı olacak, hem de sıradan bir "int" tanımı gibi otomatik olarak bellekte yer tahsis edilmiş olacak.
Adrese başvurmadan sadece sabit bir üst sınır olarak kullanıldığında sıradan int tanımına göre daha kullanışlı olabilir diye düşünüyorum.