Chả là em muốn xóa 1 phần tử của mảng và chèn 1 giá trị vào 1 mảng
nhưng sau khi xóa xong thì mảng bị thay đổi, vậy phải làm sao để lấy mảng ban đầu (mảng lúc chưa bị xóa) để chèn ạ.
Em cũng nghĩ đến cách coppy sang 1 mảng khác giống hệt, nhưng em muốn dùng cách tham chiếu tham trị hơn, mong các tiền bối có thể chỉ giúp em ạ, em cảm ơn nhiều
Làm sao để xóa 1 mảng nhưng không thay đổi mảng ban đầu
Sao phải cần mảng cũ nhỉ? Demo à?
**A[ ] = 1 2 3 4 5 6**
Ý bạn là:
A[ ] = 1 x 3 4 5 6
Thay vì
A[ ] = 1 3 4 5 6 0
:v
Copy ra mảng khác rồi sửa.
Hi Mai Vian.
Bạn xóa như nào và trèn như nào ?
Em có phóng tàu vũ trụ lên mặt trăng nhưng nó đi nhầm sang sao hỏa. Em cũng nghĩ đến cách thay đổi động cơ phóng, nhưng em muốn tính lại quỹ đạo hơn, mong các tiền bối có thể chỉ giúp em ạ, em cảm ơn nhiều
Cách duy nhất là tạo bản sao và làm việc với bản sao. Đây là cách chúng ta copy array
int a[3], b[3];
a[3] = {1, 2, 3};
memcpy(a, b, 3*sizeof(int));
Thế không có cách nào dùng con trỏ ạ, ý là dùng toán tử * vs toán tử & ạ
Cậu phải nói thật rõ là muốn xoá như thế nào.
Ví dụ lúc đầu là gì, thao tác xong thì là gì ?
Thì mọi người mới chỉ được. Vừa chỉ vừa đoán mệt lắm.
- Một là bạn có máu M thích hành hạ bản thân = những việc cao siêu
- Hai là bạn có thể xóa 1 phần tử = cách đem nó về cuối mảng và dồn mấy cái khác lên rồi tìm cách “né” cái đó ra mà không cần phải tạo mảng mới
trong đầu mình nghĩ như lày (tượng trưng):
// ref là "passed by reference"
// a : mảng a cần xóa phần tử
// index : vị trí cần xóa trong mảng
// arr_len : độ dài của mảng
deleteElement(a, index, ref arr_len) {
arr_len -= 1; // đây là cách né
*insert quá trình dồn a[index] vào cuối mảng*
// bây giờ độ dài mảng xử lý qua arr_len chứ không phải sizeof(a)
}
Thích thì chiều.
int* back_to_somewhere(int &a[], int n) { // có cả tham chiếu với cả tham trị luôn nhá
int *res;
res = (int*) malloc(n*sizeof(int)); // 1 xoá 1 chèn thì độ dài không đổi
// copy mảng
return res; // return con trỏ luôn đây này
}
em hỏi ngu cái là cái a nó là gì trong hàm thế
a là mảng ban đầu thôi mà. Có đoạn chép mảng nhưng mình lười viết.