Tôi đang tạo một mảng vectơ 2D của char làm biến lớp nhưng tôi đang thêm vectơ vào vectơ
Tôi đang gặp sự cố với mảng.
Tôi đang chạy gcc bằng tiêu chuẩn C++ 11.
我尝试使用 vector< vector > row(size, vector );
Nhưng lỗi sẽ cho tôi thấy rằng tôi chưa xác định kích cỡ
Và vectơ
.nếu tôi sử dụng kích thước int
định nghĩa nó và vectơcol
Nó sẽ nghĩ đây là một khai báo hàm mới vì tôi có nó như một biến lớp.
Vì vậy tôi sử dụng phương pháp thông thườngvector< vector > hàng;
Và có khả năng thêm một vectơ khác vào nó. Vì vậy tôi sử dụng this->row[i].push_back( vector col);
Nhưng sau đó xuất hiện thông báo lỗi lỗi: biểu thức chính được mong đợi trước 'col'
Xuất hiện. Tôi cũng đã thử chỉ sử dụng this->row[i].push_back( vector );
Nhưng lỗi vẫn tồn tại nói lỗi: biểu thức chính được mong đợi trước ')'
.Điều này có thể ngu ngốc, nhưng tôi không biết cách thêm vectơ vào vectơ.
lớp Vector2d {
private:
kích thước int;
vector< vector > hàng;
public:
làm mất hiệu lực make2d();
};
void Vector2d::make2d() {
for (int i = 0; i < this->size; i++) {
this->row[i].push_back( vector col ); // biên dịch lỗi ở đây
for (int j = 0; j < this->size; j++) {
cái này->hàng[i][j];
}
}
cout << "Nó hoạt động!" << endl;
}
Tôi muốn nó thêm mảng vectơ vào mảng vectơ và tôi có thể sử dụng hàng[i][j]
cho phần còn lại của chương trình. Nhưng nó báo lỗi trình biên dịch lỗi: biểu thức chính được mong đợi trước 'col'
Tôi không biết phải làm gì.
vectơcol
không phải là một biểu thức hợp lệ. Nó gần giống như một khai báo biến (không phải là điều bạn cần ở đây), ngoại trừ việc thiếu dấu chấm phẩy để hoàn thành khai báo.
Ngoài ra, bạn không thể truy cập hàng[i]
直到 hàng ngang
thực sự chứa ít nhất Tôi
元素。 hàng[i].push_back
Hãy thử chèn phần tử char vào std::vector
Đó là Tôi
phần tử thứ của vectơ vectơ (ngoại trừ bạn chưa bao giờ tạo Tôi
phần tử thứ).
Giả sử rằng trong vòng lặp bên dưới, có vẻ như bạn đang giả định rằng vectơ được chèn phải có kích cỡ
phần tử, đây là cách chèn một vectơ kích cỡ
Các phần tử được chuyển đổi thành vectơ của vectơ:
row.push_back(std::vector(size));
// hoặc đơn giản hơn
row.emplace_back(size);
Nếu bạn muốn chèn một vectơ trống, chỉ cần sử dụng:
row.emplace_back();
Đây là cách chèn tất cả kích cỡ
kích cỡ
Một vectơ các phần tử sử dụng một lần để bạn có thể sử dụng hàng[i][j]
cho tất cả Tôi
Và j
ít hơn kích cỡ
:
row.resize(size, std::vector(size));
Tôi là một lập trình viên xuất sắc, rất giỏi!