01/10/2018, 01:13
Cho hỏi về C++?
Mọi người cho mình hỏi tại sao chỗ String (khoanh đỏ) phía trước lại có std:: , trong khi đó mấy cái kia cũng khai báo biến mà ko có std:: ?
Bài liên quan
Mọi người cho mình hỏi tại sao chỗ String (khoanh đỏ) phía trước lại có std:: , trong khi đó mấy cái kia cũng khai báo biến mà ko có std:: ?
Tại vì nó thuộc về namespace std, hay là thư viện STL gồm
<iostream>, <vector>, <string>, <map>, <chrono>
…Nếu không có
using namespace std
ở đầu file cpp (thường khai báo sau khi #include) thì phải chỉ cho compiler là “string” là class thuộc namespace nào.Còn int, char, float… là kiểu dữ liệu mặc định thì không cần khai báo.
thế mấy cái kia ko thuộc namespace std hả bạn ?
int, float… là kiểu cơ bản, không thuộc namespace nào hết.
string là class, nó được định nghĩa trong namespace là std.
Nếu mới học thì nên để
using namespace std;
ở dưới chỗ#include <...>
cho quen, rồi từ từ sẽ tự hiểunamespace
là gì, vì sao phải đểstd::
trướcstring
,vector
,fstream
, …Mình thấy ko nên
using
hết cả 1 namespace, chủ yếu cầnstd::cin
vớistd::cout
vớistd::fstream
thôi.Mình nói lúc mới học mà, còn làm project này nọ thì không nên dùng vì khả năng trùng hàm.
Còn bình thường thì có thể dùng, vì nhiều trường hợp rất phiền phức nếu trong code sử dụng nhiều containers và các hàm trong thư viện
algorithm
.Bạn có thể xem thêm về namespace tại đây: http://vietjack.com/cplusplus/namespace_trong_cplusplus.jsp
Nó thuộc vè namespace std
Và thêm std như vậy sẽ giúp chương trình chạy nhanh hơn !
Thân !
Chạy nhanh hơn thật à, hay chỉ compile nhanh hơn, bạn giải thích với