./vcpkg install abseilfind_package(absl CONFIG REQUIRED)git clone https://github.com/abseil/abseil-cpp.gitcd abseil-cpp && mkdir build && cd buildcmake .. && make -j8sudo make installfind_package(absl REQUIRED)
target_link_libraries(your_target absl::base absl::strings)#include "absl/strings/str_split.h"
#include "absl/strings/str_join.h"
#include "absl/strings/string_view.h"
absl::string_view input = "apple,banana,cherry";
std::vector parts = absl::StrSplit(input, ',');
std::string result = absl::StrJoin(parts, " | ");
// 输出: apple | banana | cherry
#include "absl/time/time.h"
#include
absl::Time now = absl::Now();
absl::Duration dur = absl::Seconds(5) + absl::Milliseconds(300);
absl::Time later = now + dur;
int64_t seconds = absl::ToUnixSeconds(now);
std::cout << "Now: " << absl::FormatTime(now) << "\n";
#include "absl/container/flat_hash_map.h"
#include
absl::flat_hash_map hmap;
hmap["alice"] = 25;
hmap["bob"] = 30;
if (hmap.contains("alice")) {
std::cout << "Age: " << hmap["alice"] << "\n";
}
absl::make_uniqueabsl::make_shared#include "absl/memory/memory.h"
auto ptr = absl::make_unique(42);
auto sptr = absl::make_shared("hello");
#include "absl/base/check.h"
int* p = nullptr;
ABSL_CHECK(p != nullptr); // 如果为 false,打印错误并终止
ABSL_DCHECK_GT(5, 3); // 调试模式下检查
#include "absl/status/status.h"
#include "absl/status/statusor.h"
absl::StatusOr Divide(double a, double b) {
if (b == 0) return absl::InvalidArgumentError("divide by zero");
return a / b;
}
auto result = Divide(10, 3);
if (result.ok()) {
std::cout << "Result: " << result.value() << "\n";
} else {
std::cerr << result.status().ToString() << "\n";
}
absl::string_viewabsl::flat_hash_map/set