28 HAZİRAN 2010, PAZARTESİ
Eğer harita bir anahtar için bir değer içerip içermediğini belirlemek?
Eğer STL bir harita belirli bir anahtar için bir değer içerip içermediğini belirlemek için en iyi yolu nedir?
#include <map>
using namespace std;
struct Bar
{
int i;
};
int main()
{
map<int, Bar> m;
Bar b = {0};
Bar b1 = {1};
m[0] = b;
m[1] = b1;
//Bar b2 = m[2];
map<int, Bar>::iterator iter = m.find(2);
Bar b3 = iter->second;
}
Bir hata ayıklayıcı bu incelenmesi, iter
sadece çöp veri gibi görünüyor.
Eğer bu cümleyi ben Yorumsuz:
Bar b2 = m[2]
Hata ayıklayıcı b2
{i = 0}
olduğunu gösterir. (Tanımsız bir dizin kullanarak tüm boş/başlatılmamış değerlere sahip bir yapı dönecek anlamına geliyor sanırım?)
Bu yöntemlerin ikisi de çok güzel. Aslında tek istediğim bu gibi bir arabirim
bool getValue(int key, Bar& out)
{
if (map contains value for key)
{
out = map[key];
return true;
}
return false;
}
Bu satırlar boyunca bir şey var mı?
CEVAP
1 AĞUSTOS 2012, ÇARŞAMBA
Haritanın bir birden çok eşleme olmadığı sürece, en şık yollarından biri sayma yöntemini kullanmak olacaktır
if (m.count(key))
// key exists
Kont eğer bu eleman gerçekten haritasında ise 1 olacaktır.
Bunu Paylaş:
Eğer bir dizi başka bir dizinin tüm öğ...
Algoritma eğer dizi n içerip içermediğ...
Hızlı eğer bir tam sayı iki tamsayı (d...
'in daha hızlı ve eğer bir dizi a...
Bir dizi değeri içerip içermediğini be...