string 數組存儲的是 string 對象本身,而非字符數據。 每個 std::string 對象內部包含指向堆內存字符緩衝區的指針,實現變長字符串管理。
// 代碼示例
std::string arr[3] = {"hello", "world", "longer string content"};
// 內存結構(簡化)
arr[0] → [string對象] → 指針 → 堆內存 "hello\0"
arr[1] → [string對象] → 指針 → 堆內存 "world\0"
arr[2] → [string對象] → 指針 → 堆內存 "longer string content\0"
// 靜態數組
std::string names[100]; // 默認構造 100 個空 string
std::string cities[] = {"北京", "上海"}; // 列表初始化
// 動態數組 (推薦使用 vector)
std::vector dynamic_arr;
dynamic_arr.reserve(1000); // 預留容量,減少擴容開銷
std::vector 替代原始數組reserve()std::move(str)std::string_view (C++17) 避免拷貝