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?
Bài liên quan
string: mảng kí tự.
array: mảng số.
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?
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.
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ó.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.