c++ 11 ile birden fazla değeri tek seferde vermek. ipucu: initializer_list

Bir nesen oluturdunuz ve değişken değeri verirken birden fazla değer vermek istiyorsunuz. FOO foo(5,6,7) gibi değerler veremezsiniz. c++11 initializer_list diye bir tip tanıttı bizlere. Birden çok değeri aynı anda verebiliyoruz


Örnek1;
class{
...
...
Bag(std::initializer_list<int> values) {
assert(values.size() < 10);
auto it = values.begin();
while (it != values.end()) {
Add(*it);
++it;
}
}
void Add(int value) {
assert(m_Size < 10);
arr[m_Size++] = value;
}
...
...
};
//ikinci yolu
Bag(std::initializer_list<int> values) {
assert(values.size() < 10);
for(auto&& tt: values)
Add(tt);
         }

//sonra kullanmaya başla;
Bag b{ 3,1,8 };

Örnek2;
// olduça basit ha?
...
void Print(std::initializer_list<int> values) {
//auto it = values.begin();
//while (it != values.end()) {
// std::cout << *it++ << " ";
//}
for (auto x : values) {
std::cout << x << " ";
}
}
...
Print({ 8,2,6,7 });

Yorumlar

Popüler Yayınlar