Câu trả lời chính thức thực sự là std::vector<Building>::size_type
, như đã nêu trong câu trả lời khác.
Câu trả lời thực sự tùy thuộc vào việc bạn đã có loại trong chương trình mà bạn sử dụng để biểu thị số lượng tòa nhà. Nó có thể là int
, có thể là unsigned
hoặc có thể là một số tên typedef TBuildingCount
. Đây là loại bạn nên sử dụng trong trường hợp này. Nó có thể yêu cầu một diễn viên để ngăn chặn cảnh báo trình biên dịch, nhưng đó là cách nó thường là.
Tôi không thấy phần còn lại của mã, vì vậy tôi không thể chắc chắn, nhưng tôi đoán rằng các tòa nhà được lưu trữ trong một số vector ở đâu đó (hoặc trong bất kỳ vùng chứa nào khác) chỉ là chi tiết triển khai, không ảnh hưởng đến lựa chọn loại của bạn để tính các tòa nhà này. Không cần phải phơi bày sự tồn tại của bộ lọc đó (hoặc dựa vào nó) ngay cả theo cách gián tiếp như sử dụng size_type
để trả về số đếm.
Nói cách khác, nếu bạn đã quyết định sử dụng int
để đếm tòa nhà, thì việc triển khai trong câu hỏi của bạn là câu hỏi bạn nên tuân thủ.
+1 cho giải thích ba chiều – Borgleader
Tôi thà ở lại với chuyển đổi int của tôi hơn là bất kỳ trong số này :). Tất cả đều xấu xí ngoại trừ cái cuối cùng nhưng chúng ta chưa có, C++ 14 ... – user2381422
@ user2381422, Nhưng 'int' gây rắc rối ở khắp mọi nơi. Trong so sánh, bạn nhận được cảnh báo, bạn có thể nhận được cắt ngắn, và bạn phải làm công việc vô nghĩa trong các callite nếu bạn muốn loại thích hợp. – chris