30/09/2018, 16:51

Kiểu dữ liệu khi giải các dạng toán kiểu tập hợp

Các bạn cho minh hỏi là khi giải các dạng toán kiểu tập hợp là 1 dãy a[1,…,n] hoặc 1 tập hợp S = {1,2,…,n} có thứ tự thì mình dùng kiểu dữ liệu gì. Em đang phân vân giữa việc dùng biến string để lưu, vì string có thể truy cập đến từng phần tử. Còn nếu dùng kiểu int thì phải lưu trong một mảng. Vậy cách nào hợp lý hơn?

... viết 19:06 ngày 30/09/2018

string: mảng kí tự.
array: mảng số.

Nguyễn Minh Dũng viết 18:55 ngày 30/09/2018

Nếu không có nhu cầu sử lý chuỗi thì ta dùng mảng là được rồi. Mà ngôn ngữ @Hoa_Hoa đang muỗn nói tới là C hay C++ hay?

Hoa Hoa viết 19:06 ngày 30/09/2018

Em dùng C++ anh à! Dãy A[1,…,n] ở đây cụ thể là dãy nhị phân. Còn tập hợp S thì là số tự nhiên.

Nguyễn Minh Dũng viết 19:01 ngày 30/09/2018

Nếu là C++ em sử dụng vector nhé. Vì vector nó là stl, là sức mạnh của C++. Thế nên mình nên tập dùng nó.

Itachi Citus viết 18:51 ngày 30/09/2018

http://www.cplusplus.com/reference/set/set/
Bản thân STL của C++ tồn tại kiểu… tập hợp (set) và đảm bảo thứ tự. Còn dãy thì dùng list hoặc vector để làm, Tập hợp là khái niệm từ bên toán, do đó trong set không tồn tại 2 phần tử giống nhau.

Tuy nhiên set của C++ không mạnh lắm, nếu bạn sử dụng một số ngôn ngữ khác thì set có cài đặt sẵn hợp, giao, hiệu v.v… luôn.

Bài liên quan
0