std::string::empty
Főnév
std::string::empty (tsz. std::string::empties)
- (informatika) A
std::string::empty()egy C++ szabványos könyvtárában található tagfüggvény, amely arra szolgál, hogy ellenőrizze, egystd::stringobjektum üres-e, vagyis nem tartalmaz karaktereket.
1. Szintaxis
bool empty() const noexcept;
- Visszatérési érték:
true, ha a string üres (hossza 0), különbenfalse. consttagfüggvény: Nem módosítja az objektumot.noexcept: Nem dob kivételeket.
2. Egyszerű példa
#include <iostream>
#include <string>
int main() {
std::string s1 = "";
std::string s2 = "Hello";
std::cout << "s1 üres? " << (s1.empty() ? "Igen" : "Nem") << std::endl;
std::cout << "s2 üres? " << (s2.empty() ? "Igen" : "Nem") << std::endl;
return 0;
}
Kimenet:
s1 üres? Igen s2 üres? Nem
Ebben a példában az s1 üres, így empty() true értéket ad vissza, míg az s2 nem üres, így false.
3. Kapcsolata length()-tel
A empty() egyenértékű azzal, ha ellenőrizzük, hogy length() == 0:
if (s.empty()) {
std::cout << "A string üres" << std::endl;
}
ugyanazt csinálja, mint:
if (s.length() == 0) {
std::cout << "A string üres" << std::endl;
}
De a empty() használata jobban olvasható és hatékonyabb lehet optimalizáció szempontjából.
4. Használata if feltételekben
A empty() gyakran szerepel if szerkezetekben egy karakterlánc tartalmának ellenőrzésére:
std::string felhasznalo_input;
std::cout << "Írjon be valamit: ";
std::getline(std::cin, felhasznalo_input);
if (felhasznalo_input.empty()) {
std::cout << "Nem írt be semmit!" << std::endl;
} else {
std::cout << "A beírt szöveg: " << felhasznalo_input << std::endl;
}
Ha a felhasználó csak egy ENTER-t nyom, akkor a program felismeri, hogy a string üres.
5. Teljesítmény és időkomplexitás
A empty() O(1) időben fut, mivel nem kell végignéznie a string tartalmát – a std::string belsőleg tárolja a méretet.
Ezért hatékonyabb lehet, mint size() == 0 vagy length() == 0, mivel egyes implementációkban a size() lehet nem inline függvény.
6. Példa ciklus megszakítására
A empty() gyakran hasznos ciklusokban, amikor egy bemenet beolvasása után ellenőrizzük, hogy üres-e:
std::string s;
while (true) {
std::cout << "Adjon meg egy szöveget (üres input a kilépéshez): ";
std::getline(std::cin, s);
if (s.empty()) {
std::cout << "Kilépés..." << std::endl;
break;
}
std::cout << "Beírt szöveg: " << s << std::endl;
}
Ha a felhasználó üres sort ad meg, a program leáll.
7. std::wstring::empty() – Széles karakterláncok esetén
A empty() ugyanígy működik std::wstring esetén is:
std::wstring ws = L"";
if (ws.empty()) {
std::wcout << L"A széles string üres." << std::endl;
}
8. Összegzés
- Mit csinál? Ellenőrzi, hogy a string üres-e.
- Mikor használjuk? Ha gyorsan és hatékonyan akarunk ellenőrizni egy stringet, hogy tartalmaz-e karaktereket.
- Alternatíva:
s.size() == 0vagys.length() == 0, de aempty()olvashatóbb és hatékonyabb. - Időkomplexitás:
O(1), mert astd::stringtárolja a hosszát.
- std::string::empty - Szótár.net (en-hu)
- std::string::empty - Sztaki (en-hu)
- std::string::empty - Merriam–Webster
- std::string::empty - Cambridge
- std::string::empty - WordNet
- std::string::empty - Яндекс (en-ru)
- std::string::empty - Google (en-hu)
- std::string::empty - Wikidata
- std::string::empty - Wikipédia (angol)