2011-12-20 33 views
5

Bạn chỉ định loại bằng chuỗi? Ý tôi là:Chỉ định loại véc tơ có chuỗi

string s = "int"; 
Vector<s> vec; 

Và tôi muốn vec là vector<int>. Điều này có khả thi không?

Tôi muốn tạo lớp học mà người dùng có thể nhập vào chuỗi và một vectơ với loại đó sẽ được tạo.

+0

Bạn cần loại dữ liệu biến thể nào đó. –

Trả lời

5

Không thể có trong C++, ít nhất là không theo cách bạn muốn.

Mẫu là thời gian biên dịch khái niệm, trong khi đầu vào của người dùng là khái niệm thời gian chạy. Hoàn toàn khác, không thể trộn lẫn được.

Để thực hiện công việc đó, bạn cần ngôn ngữ được nhập động, C++ thì không. Nó được gõ tĩnh.

+0

Ok, nhưng tôi muốn làm điều này bởi vì tôi muốn thực hiện một vector đa chiều, http://stackoverflow.com/questions/8579207/hypercube-c-multidimensional-vectros. Có lời khuyên nào không? – shizzle

3

Điều này có khả thi không?

Điều này không thể thực hiện được trong C++. Nếu sử dụng tăng là một tùy chọn, hãy xem xét việc tạo một véc tơ của boost::variant đối tượng thay thế: theo cách này, kiểu được nhập tĩnh của bạn vector sẽ được chuẩn bị để chấp nhận các phần tử thuộc các loại khác nhau.

Các vấn đề liên quan