Tôi chỉ mới bắt đầu học C++ để bào chữa cho câu hỏi đơn giản này. Những gì tôi đang làm là đọc các số từ một tệp và sau đó cố thêm chúng vào một mảng. Vấn đề của tôi là làm thế nào để bạn tăng kích thước của mảng? Ví dụ tôi nghĩ rằng có thể chỉ cần làm:Mảng động
#include <iostream>
using namespace std;
int main() {
double *x;
x = new double[1];
x[0]=5;
x = new double[1];
x[1]=6;
cout << x[0] << "," << x[1] << endl;
return 0;
}
Nhưng điều này rõ ràng chỉ ghi đè giá trị, 5, mà ban đầu tôi đặt thành x [0] và vì vậy đầu ra 0,6. Làm thế nào tôi sẽ làm cho nó để nó sẽ sản lượng 5,6?
Hãy nhận ra rằng đối với ví dụ tôi đã đưa vào, tôi không muốn làm lộn xộn nó bằng cách đọc mã từ tệp hoặc mã để lấy số từ người dùng. Trong ứng dụng thực tế, tôi sẽ không biết làm thế nào lớn của một mảng tôi cần tại thời gian biên dịch vì vậy xin vui lòng không cho tôi biết chỉ cần thực hiện một mảng với hai yếu tố và đặt chúng bằng 5 và 6 tương ứng.
Cảm ơn sự giúp đỡ của bạn.
Bạn phải cẩn thận với vector mặc dù chúng có xu hướng sử dụng khá chậm. – Huppie
Chậm là tương đối. tức là, lập hồ sơ cho chương trình của bạn và xem liệu nó có tác động đến mọi thứ hay không. Nếu có, hãy viết một trình phân bổ tùy chỉnh, được tối ưu hóa để phân bổ đôi (và các đối tượng có kích thước 'sizeof (double)'). –
Nó sẽ không chậm hơn so với thực hiện thay đổi kích thước cho mình với mới, xóa và sao chép. –