Tạo toán tử [ ]

Giả sử:

struct A{
	int n;
	A *nxt;
};

Em xin code: operator[ ] với, em cảm ơn nhiều!

Ví dụ có DSLK={3,4,5,6}, với:

int Var = DSLK[2].n;

thì giá trị của Var là 5.

0   1   2   3    vị trí
3   4   5   6    giá trị

à, em xin lỗi, yêu cầu sai à, em xin phép sửa!

ý bạn là nạp chồng toán tử lấy phần tử [n] trong mảng mà con trỏ nxt trỏ đến hả?

1 Like

Đầu tiên bạn phải xác định nó có nghĩa là gì đã, vì bạn chỉ dùng node thôi chứ không dùng danh sách đầy đủ.

Ý của em là sau khi tạo 1 danh sách liên kết, em muốn nạp chồng toán tử để truy cập vào node đó.
Ví dụ truy cập vào node đầu của danh sách liên kết thì em chỉ cần thêm [0] vào sau danh sách đó như phần ví dụ ở trên, giống như string hay vector.

  1. Tạo danh sách liên kết (struct DSLK gồm pHead, pTail) của struct A
  2. Trong struct DSLK, nạp chồng [] tham biến int x (tìm Node A vị trí x của DSLK)
    2.1 Trong toán tử hàm nạp chồng [], tạo con trỏ A *current = DSLK->pHead;
    2.2 Tạo vòng for chạy từ i đến x
    2.3 Gán con trỏ current tới current.nxt
    2.4 return current
1 Like

Em xin code được không ạ? Em dùng VS thì nó không cho phép nạp [ ] tuy nhiên khi thử với + thì nó lại được, em cũng không biết vì sao!

Hàm nạp chồng bạn viết như thế nào mà không được?
Bạn đưa code bạn lên đây mọi người sẽ giúp bạn xem lỗi.
Hỏi bài chắc không ai làm hộ bạn đâu

1 Like

Nó gạch chân đỏ

Bạn áp dụng câu này của mình là nó nhận,
Toán tử [] nó chỉ nhận tham biến với kiểu dữ liệu int thôi bạn nhé.
http://en.cppreference.com/w/cpp/language/operators#Array_subscript_operator

1 Like

Viết đúng nhất là dùng (const) reference.

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?