Merhaba cünkü c++ ta string diye bir primtive bulunmuyor. Şöyle ufak bir trick ile stringi hash'e çevirip karşılaştırabilirsiniz
#include <iostream>
#include <string>
#include <cstring>
constexpr uint32_t hash_impl(const char* data, size_t size, uint32_t hash) noexcept {
return size == 0 ? hash : hash_impl(data + 1, size - 1, ((hash << 5) + hash) + (unsigned char)(*data));
}
constexpr uint32_t hash(const char* data, size_t size) noexcept {
return hash_impl(data, size, 5381);
}
constexpr uint32_t hashString(const char* str) {
return hash(str, std::strlen(str));
}
int main() {
constexpr uint32_t helloHash = hashString("hello");
switch (helloHash) {
case hashString("hello"):
std::cout << "hello";
break;
default:
break;
}
return 0;
}