01/10/2018, 00:20

Khả năng đánh index của mảng bằng String thay vì số nguyên trong C++?

cho e hỏi trong C++ có biểu diễn mảng có chỉ số là kí tự đc ko ạ? như pascal í
vd: match[’ ‘…’]’]

Nguyễn Xuân Phúc viết 02:31 ngày 01/10/2018

về lý thuyết khái niệm thì không, nhưng ta có thể dùng mã ascii của các kí tự để làm index
ví dụ: arr['a'] tức là phần tử có chỉ số là mã ascii của kí tự ‘a’ tức là 97, tức là a[97]
nói là lý thuyết khái niệm là bởi vì theo đúng lý thuyết định nghĩa thì C++ k có vụ index là kí tự, nhưng mà dùng cách kia thì ta có thể sử dụng giống như ở pascal, tức là vẫn có các kiểu như

arr['a'] = 1;
for (char i = 'a'; i <= 'z'; i++)
    arr[i] = 123;

bla bla bla

Khang Trần viết 02:33 ngày 01/10/2018

dạ e cảm ơn

Văn Dương viết 02:23 ngày 01/10/2018

Còn kiểu này là như thế nào nhỉ (như kiểu indexer C#):

int ret = MyObject.Data["Data1"];
int ret2 = MyObjecr.Data["Data2"];
Nguyễn Xuân Phúc viết 02:23 ngày 01/10/2018

ủa nhớ C# cũng bắt index là number mà
còn nếu dùng string giả làm index thì nhớ hình như chỉ có Dictionary trong C# (hay trong C++) thôi

Thánh Kuro viết 02:29 ngày 01/10/2018

c# có indexer nên có thể tạo index với nhiều kiểu dữ liệu khác nhau chứ không nhất thiết chỉ số nguyên hay là string

Bài liên quan
0