cuốn sách gpt4 ai đã làm

c++ - phân bổ vectơ

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-04 15:53:10 31 4
mua khóa gpt4 Nike

Làm cách nào để gán v[i] cho một phạm vi số nguyên (loại của v là vectơ) mà không cần đệm ban đầu

câu trả lời hay nhất

Ý của bạn là khởi tạo std::vector thành một chuỗi số nguyên phải không?

int i[] = {1, 2, 3, 4, 5};
std::vector myVector(i, i+ (sizeof(i)/sizeof(int)));

Nếu bạn dự định tạo một vectơ của một số phần tử thì bạn có thể thực hiện phép gán bằng cách sử dụng các giá trị chỉ mục của chúng. Ở đây, các câu lệnh sau khai báo và khởi tạo một vectơ có các phần tử được khởi tạo bằng 0 theo mặc định.

std::vector myVector(5); // xây dựng một vectơ có kích thước năm số nguyên.

vì (int x = 0; x < 5; x++)
myVector[x] = i[x]; // gán giá trị bằng chỉ số dưới [..]

Nhưng tôi nghĩ cách tiếp cận tốt hơn là @CashCow đã đề cập trong câu trả lời của anh ấy.

Cũng lưu ý rằng bạn cũng có thể phân bổ trước bộ nhớ để thêm các phần tử vào vectơ, do đó tránh mọi phân bổ bộ nhớ trùng lặp.

Ví dụ:

std::vector myVector // vector trống cho số nguyên;
myVector.reserve(5); // cấp phát trước bộ nhớ cho 5 số nguyên

for (int i = 0; i < 5; i++) // bây giờ, bạn có thể thêm các phần tử của mình
myVector.push_back(i);

Thông thường, bạn nên phân bổ trước bộ nhớ nếu bạn biết kích thước của các phần tử, tức là nếu có một số lượng lớn các phần tử khi hiệu suất là một yếu tố quan trọng.

Về c++ - vectơ phân bổ, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/4553940/

31 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress