Size_t Trong C/C++ | Think In Programming
Có thể bạn quan tâm
Lưu ý khi dùng size_t
Vì size_t thường được map với kiểu dữ liệu nguyên không dấu, nên khi thực hiện phép trừ sẽ cho ta một kết quả trái với mong đợi. Ví dụ: đoạn code dưới đây sẽ không cho ra kết quả là -1, mà ra một số khổng lồ (nếu được map với unsigned long long int thì nó sẽ ra 18446744073709551615)
#include <iostream> using namespace std; int main() { size_t a = 0; cout << a-1 << endl; return 0; }Các hàm size() trong C++ đều trả về kiểu size_t, cho nên khi thực hiện các vòng lặp tương tự như dưới đây có khả năng sẽ bị lỗi. (nhất là trong các cuộc thi code, sẽ bị mất điểm bởi những testcase đặc biệt)
vector<int> a; for (int i = 0; i < a.size() - 1; i++) { //do something }Nếu a không chứa phần tử nào thì vòng for này vẫn sẽ được chạy. Nên viết theo kiểu dưới đây.
vector<int> a; for (int i = 0; i + 1 < a.size(); i++) { //do something }hoặc là phải cast a.size() về kiểu int.
Nhưng chúng ta nên hạn chế cast kiểu dữ liệu như vậy, tốt hợn hết là sử dụng đúng kiểu dữ liệu (giống như ví dụ ở đầu bài), bởi vì std::size_t khi build với x64 là 64 bits mà int vẫn là 32 bits nên sẽ có vấn đề
Nguyễn Gia/Kipalog
Share this:
- More
Related
Author: miracleandeffort.LĐT
learn to software engineer View all posts by miracleandeffort.LĐT
Từ khóa » Size_t Là Gì Trong C
-
Kiểu Dữ Liệu Size_t Trong C++ Là Gì? - Banhoituidap
-
C/C++, Size_t - Kipalog
-
Size_t Trong C Là Gì? - HelpEx
-
Top 20 Size_t Là Gì Trong C Mới Nhất 2022 - Chickgolden
-
Tự Học C/C++ | Tìm Hiểu Về Số Nguyên Có Chiều Rộng Cố định Và Size_t
-
Size_t Vs Int Trong C++ Và/hoặc C - Tra-loi-cau-hoi-phat-trien
-
Sự Khác Nhau Giữa Size_t Và Int - Programming
-
Thắc Mắc Và Sử Dụng Size_t
-
Tôi Tìm định Nghĩa Của Size_t ở đâu? - Bổ-tú
-
Memset Trong C++ - Techacademy
-
Generic Vector Trong C - Nomi
-
Hướng Dẫn Lấy Date Và Time Trong C++ đơn Giản | TopDev
-
Thắc Mắc Và Sử Dụng Size_T Trong C++ Là Gì? Tự Học C/C++
-
String.h Trong C