Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Mảng chuỗi (Array of Strings) trong C++

Trong C, chuỗi là mảng ký tự kết thúc bằng '\0', mảng chuỗi thành mảng 2 chiều ký tự. C++ cung cấp lớp std::string và container std::vector làm việc với chuỗi thuận tiện hơn nhiều.

1. Mảng std::string tĩnh

#include <iostream>
#include <string>
using namespace std;

int main() {
    string animals[4] = {"Elephant", "Lion", "Deer", "Tiger"};
    for (int i = 0; i < 4; i++)
        cout << animals[i] << endl;
    return 0;
}
Elephant
Lion
Deer
Tiger

2. Vector chuỗi std::vector<std::string> (động)

#include <iostream>
#include <vector>
#include <string>
using namespace std;

int main() {
    vector<string> animal_vec;
    animal_vec.push_back("Elephant");
    animal_vec.push_back("Lion");
    animal_vec.push_back("Deer");
    animal_vec.push_back("Tiger");
    for (size_t i = 0; i < animal_vec.size(); i++)
        cout << animal_vec[i] << endl;
    return 0;
}
Elephant
Lion
Deer
Tiger

3. Khởi tạo hiện đại (C++11 trở đi)

// Danh sách khởi tạo (initializer list)
vector<string> animals = {"Elephant", "Lion", "Deer", "Tiger"};
string arr[] = {"Elephant", "Lion", "Deer", "Tiger"}; // mảng C-style deduced size

// Duyệt range-based for (C++11)
for (const auto& s : animals) cout << s << '\n';
for (const auto& s : arr)     cout << s << '\n';

4. So sánh nhanh

Đặc điểmstring[] (mảng tĩnh)vector<string>
Kích thướcCố định tại compile-timeĐộng, thay đổi được
Quản lý bộ nhớTự động (stack/global)Tự động (heap nội bộ)
Thêm/xóaKhông thểpush_back, pop_back, insert, erase
Biết sizesizeof(arr)/sizeof(arr[0]).size()
An toànDễ tràn mảngKiểm tra biên (at())

Khuyến nghị

  • Ưu tiên std::vector<std::string> cho hầu hết trường hợp – linh hoạt, an toàn, STL algorithms ready.
  • Chỉ dùng mảng tĩnh khi kích thước biết trước, không đổi, cần hiệu năng cực đại (embedded, real-time).
  • C++17: std::string_view cho tham số chỉ đọc, tránh copy chuỗi.