Mảng là một kiểu dữ liệu cơ bản có cấu trúc mà mọi lập trình viên đều phải nắm vững, tuy vậy khi một mảng có nhiều chiều thì cấu trúc dữ liệu này sẽ trở nên phức tạp hơn. Với ngôn ngữ lập trình thiên về khả năng tính toán như C++, cấu trúc mảng 2 chiều là một phần kiến thức quan trọng có tính ứng dụng cao giúp chúng ta có thể xử lý các bài toán lưu trữ và thao tác với dữ liệu thực tế. Bài viết hôm nay chúng ta cùng nhau tìm hiểu về mảng 2 chiều trong C++ và làm quen với nó thông qua các ví dụ cụ thể nhé. Mảng 2 chiều trong C++ Trong C++, mảng 2 chiều được hiểu đơn giản là một mảng có 2 phần tử mà trong đó mỗi phần tử chính là một mảng. Định nghĩa này cũng có thể được mở rộng ra với mảng nhiều chiều. Mả [...]
Read more →Nếu bạn đang hoặc có ý định trở thành lập trình viên C++ thì việc lựa chọn một IDE phù hợp để viết và chạy code là điều vô cùng cần thiết. Có khá nhiều lựa chọn ở thời điểm hiện tại khiến nhiều bạn phân vân, bài viết này mình sẽ cùng tìm hiểu các IDE phổ biến và những đặc điểm nổi bật để giúp bạn dễ dàng lựa chọn hơn nhé. IDE C++ là gì? Trước tiên chúng ta cùng làm rõ khái niệm IDE C++ và các đặc điểm của nó nhé. IDE viết tắt của Integrated Development Environment – môi trường phát triển tích hợp, là một công cụ vừa giúp bạn soạn thảo code và vừa có thể biên dịch được code cũng như thực hiện các chức năng khác. IDE C++ là các IDE hỗ trợ viết code dự án bằng ngôn ngữ lập trình C++, được tích hợp sẵn các trình [...]
Read more →Trong những bài trước, ta đã tìm hiểu về Stack, trong lập trình C++, còn có một loại cấu trúc dữ liệu trái ngược với Stack đó là Queue - Hàng đợi. Trong bài viết này, chúng ta sẽ cùng tìm hiểu sâu hơn về Queue trong C++, từ cách khởi tạo, sử dụng đến những ứng dụng thực tế của nó trong lập trình C++. Queue C++ là gì? Hàng đợi - Queue là một cấu trúc dữ liệu đặc biệt trong C++ được quản lý theo nguyên tắc First In First Out (FIFO), tức là phần tử được thêm vào trước sẽ được lấy ra trước. Cấu trúc này rất hữu ích trong nhiều bài toán liên quan đến quản lý luồng dữ liệu, xử lý các yêu cầu theo thứ tự hoặc trong các hệ thống hàng đợi. Với sự hỗ trợ mạnh mẽ từ một thư viện chứa những template C++ (STL - Standard Template Library), Queue trở thành một công cụ hữu ích và linh hoạ [...]
Read more →Bài viết được sự cho phép bởi tác giả Vũ Thành Nam Bài viết trước mình đã đi tổng quan về caching, bài viết này mình sẽ đi cụ thể hơn về một loại cache phổ biến trong các ứng dụng monolithic. Bắt đầu nhé! In-memory cache là gì? In-memory cache sử dụng bộ nhớ (RAM) của máy server để lưu trữ data. RAM cho chúng ta tốc độ đọc ghi đáng kinh ngạc tùy vào vào từng loại nhưng thường cho tốc độ hàng chục Gigabyte trên giây so với tốc độ từ khoảng 50 ~ 250MB/s của SSD. Nhìn vào những con số đó ta thấy rõ ràng tốc đọc và ghi giữa 2 vùng lưu trữ là rất lớn. In-memory cache tham chiếu tới bộ nhớ đệm và dùng nó để lưu trữ dữ liệu trong bộ nhớ của server khi mà server đang chạy ứng dụng. Điều này đồng nghĩa với việc khi server khởi động lại hoặc bị tèo thì dữ liệu được lưu trong cache sẽ bị mất đi. Vậy nên lựa chọn [...]
Read more →Toán tử (Operator) là một khái niệm cơ bản trong mọi ngôn ngữ lập trình, một yếu tố không thể thiếu trong mọi chương trình chạy và cũng là một phần kiến thức quan trọng mà chúng ta cần nắm vững khi viết code. C++ là một ngôn ngữ lập trình đa năng, bậc cao được sử dụng nhiều trong tính toán; vì thế nó cũng được trang bị đầy đủ các loại toán tử khác nhau. Bài viết hôm nay chúng ta cùng tìm hiểu về toán tử trong C++, các loại toán tử với cách sử dụng và thứ tự ưu tiên thực hiện của nó nhé. Toán tử trong C++ là gì? Toán tử - Operators là những ký hiệu, biểu tượng được quy định sẵn từ trước; hoạt động trên các giá trị (có thể thông qua các biến) để thực hiện các phép tính toán cụ thể trong chương trình. Ví dụ chúng ta muốn thực hiện phép toá [...]
Read more →Biến (variable) là khái niệm cơ bản nhất trong lập trình mà mọi ngôn ngữ đều sử dụng. Một chương trình được viết ra và chạy không thể thiếu các biến, nó giúp chúng ta lưu trữ giá trị tính toán, truyền nó tới các hàm, thành phần khác nhau trong source code. Bài viết hôm nay chúng ta cùng tìm hiểu về biến trong C++ và cách sử dụng thông qua các ví dụ cụ thể nhé. Biến trong C++ Trong C++, biến là tên của một vị trí trong bộ nhớ, được sử dụng để lưu trữ dữ liệu. Mỗi biến trong C++ có một loại dữ liệu cụ thể, xác định rõ kích thước của bộ nhớ dành cho biến. Cú pháp khai báo biến: <Kiểu dữ liệu> <Tên biến> = [Giá trị khởi tạo của biến]; Trong đó: Kiểu dữ liệu: int, long, float, double, … Tên biến: tên mà bạn đặt cho biến và sẽ được sử dụng trong suốt chương [...]
Read more →Map là một cấu trúc dữ liệu rất phổ biến và được hầu hết các ngôn ngữ lập trình hỗ trợ tích hợp sẵn trong thư viện. Ưu điểm của nó là đưa ra được một giải pháp giúp tổ chức tốt dữ liệu dạng tập hợp, cách cài đặt đơn giản nhưng mang lại hiệu năng sử dụng tốt. Với C++, Map đã được tích hợp sẵn trong thư viện chuẩn và cho thấy mức độ sử dụng thường xuyên của nó. Bài viết hôm nay chúng ta cùng nhau tìm hiểu xem Map trong C++ là gì và làm quen với các thao tác cơ bản trong Map bằng ví dụ cụ thể nhé. Map trong C++ là gì? Map là một cấu trúc dữ liệu mà trong đó mỗi phần tử là ánh xạ giữa khóa – key sang giá trị - value của khóa đó. Map được cài đặt sẵn trong STL (Standard Template Library – Thư viện mẫu chuẩn) của C++, sử dụng dưới dạng container lưu trữ dữ [...]
Read more →Bài viết được sự cho phép bởi tác giả Vũ Thành Nam #1 Sử dụng kiểu dữ liệu tham chiếu như một kiểu nguyên thuỷ hay kiểu giá trị Trong lập trình C++ hay nhiều ngôn ngữ khác có sử dụng kiểu dữ liệu tham chiếu, tức là các giá trị cửa kiểu dữ liệu đó tham chiều tới cùng một vùng nhớ. Để hiểu về kiểu dữ liệu nguyên thuỷ (value type hay primitive type) hay kiểu dữ liệu tham chiếu (reference type) bạn cần hiểu đôi chút về vùng nhớ trong đó có heap và stack. Kiểu dữ liệu tham chiếu tuy các giá trị được lưu trên stack nhưng để truy vấn nó thì lại gọi theo heap. Hay tưởng tượng 1 ngôi nhà có địa chỉ và khi gửi thư ta thưởng gửi tới địa chỉ 123/4 chẳng hạn. Các kiểu int, long, bool, float là kiểu dữ liệu nguyên thuỷ hay kiểu giá trị. Còn object là một loại kiểu dữ liệu tham chiếu nên khi bạn gán giá trị hãy chú ý đế [...]
Read more →Bạn đam mê lập trình và mới bắt đầu tìm hiểu về lập trình C++? Bạn đã bao giờ nghe thuật ngữ này chưa loop? Loop hay Vòng lặp là một trong những khái niệm quan trọng bạn cần nắm khi học C++. Cùng TopDev theo dõi hết bài viết dưới đây để nắm được tất tần tật kiến thức về vòng lặp trong C++. Vòng lặp trong C++ là gì? Loop là một khối mã tự thực thi cho đến khi điều kiện đã chỉ định trở thành sai. Trong phần này, chúng ta sẽ xem xét chi tiết các loại vòng lặp được sử dụng trong lập trình C++. Sự cần thiết của câu lệnh lặp trong C++ Chúng ta có thể đưa ra một số cách sử dụng trong C++ Loops cho phép người dùng thực thi lặp đi lặp lại cùng một bộ câu lệnh mà không cần viết cùng một mã nhiều lần. Nó tiết kiệm thời gian và [...]
Read more →Trong thế giới công nghệ phần mềm phát triển và phát triển nhanh chóng, các ngôn ngữ lập trình khác nhau đang cạnh tranh để giành được vị trí của mình. Trong bài viết này, TopDev sẽ xem xét sự khác biệt về tính năng của từng ngôn ngữ giữa C# và C++ - hai ngôn ngữ lập trình khá phổ biến hiện nay. Sơ lược về lịch sử của C# và C++ Vào những năm 1970, khi nhà khoa học máy tính người Đan Mạch Bjarne Stroustrup làm luận án tiến sĩ, ông muốn sử dụng Simula, ngôn ngữ lập trình hướng đối tượng đầu tiên. Nhưng Simula tỏ ra quá chậm nên Stroustrup quyết định sử dụng C, ngôn ngữ lập trình nhanh nhất—và một số người cho rằng vẫn là—ngôn ngữ lập trình nhanh nhất. [caption id="" align="aligncenter" width="1560"] Lịch sử phát triển của C++ và C#[/caption] Nguồn: www.toptal.com Sau trải nghiệm với Simula , Stroustrup bắt đầu phát triể [...]
Read more →C++ là gì? Có nên học ngôn ngữ lập trình C++? Cùng TopDev tìm hiểu các kiến thức cơ bản về ngôn ngữ C++ cũng như điểm qua các ứng dụng có thể viết bằng C++ cũng như cơ hội việc làm hiện nay. [caption id="attachment_62988" align="alignnone" width="1920"] Ngôn ngữ lập trình C++ là gì?[/caption] C++ là gì? C++ (còn được viết là C plus plus hay CPP) là một ngôn ngữ lập trình hướng đối tượng (OOP) được nhiều người xem là ngôn ngữ tốt nhất để tạo các ứng dụng quy mô lớn. C++ là một phần mở rộng của ngôn ngữ C. C++ là một loại ngôn ngữ lập trình bậc trung (middle-level), mang cả tính chất của ngôn ngữ lập trình bật thấp như pascal hay C và ngôn ngữ lập trình bậc cao (C#, Java, Python…) C++ cho phép các nhà phát triển phần mềm định nghĩa các kiểu dữ liệu của riêng họ và thao tác chúng bằng các [...]
Read more →Bài viết được sự cho phép của tác giả Nguyễn Thành Nam II. Câu hỏi phỏng vấn về Lập trình hướng đối tượng (OOP) (Phần 2) 20. Các kiểu constructor trong C++? Các constructor có các phân loại phổ biến như sau: Default Constructor: Hàm khởi tạo mặc định không nhận bất kỳ tham số nào. class ABC { int x; ABC() { x = 0; } }; Parameterized constructor: hàm khởi tạo này nhận về một hay nhiều tham số. class ABC { int x; ABC(int y) { x = y; } }; Copy constructor: là một hàm thành viên khởi tạo một đối tượng bằng cách sử dụng một đối tượng khác của cùng một lớp. class ABC { int x; ABC(int y) { x = y; } // Copy constructor ABC(ABC abc) { x = abc.x; } }; 21. Copy Constructor là gì? Copy Constructor hay hàm khởi tạo sao chép, có mục đích là sao chép một đối tượng sang một đối tượng khác. Điều đó có nghĩa là một phương thức khởi tạo sao chép sẽ sao chép một đối tượng và các giá trị củ [...]
Read more →Bài viết được sự cho phép của tác giả Nguyễn Thành Nam I. Lập trình hướng đối tượng là gì? OOP (Object-Oriented Programming) là một mô hình lập trình để giải quyết vấn đề xoay quanh khái niệm "Đối tượng". Đối tượng có thể được xem như là các thể hiện của thực thế ở thế giới thực như là lớp, chúng chứa một số đặc điểm và hành vi được chỉ định trong lớp mẫu. Ở các ngôn ngữ đơn giản, một lớp có thể là một bản mẫu, dựa trên nó để tạo ra các đối tượng. Thế nên Đối tượng có thể được xem như là một thể hiện của một lớp và thỉnh thoảng nó có thể được gọi là "thực thể". Các thuật ngữ đặc trưng ám chỉ đối tượng đó là gì, và hành vi chỉ đối tượng đó như thế nào. Ví dụ, ta tạo mô hình OOP với một chiếc xe: Lớp: mẫu xe cụ thể như Audi A4, BMW I8, Maruti Suzuki Vitara Brezza,... Đối tượng: Bất kỳ chiếc xe cụ [...]
Read more →Bạn mới dấn thân vào con đường lập trình web và bối rối vì quá nhiều thuật ngữ như .NET, .NET core, .NET framework. Vậy sự khác biệt giữa chúng là gì? Nên chọn cái nào tốt nhất để học phát triển web? Trong bài viết này của TopDev, chúng ta sẽ tập trung đi sâu tìm hiểu về .NET core là gì và lịch sử hình thành của nó, đồng thời giúp bạn giải đáp thắc mắc ở đầu bài. [caption id="attachment_62869" align="aligncenter" width="1100"] .NET core là gì? Lịch sử hình thành và phát triển của .NET core[/caption] Tổng quan về .NET Core .NET Core là gì? .NET Core là phiên bản cải tiến của .NET Framework, là một nền tảng phát triển đa năng, mã nguồn mở, miễn phí được duy trì bởi Microsoft. Nó là một framework đa nền tảng chạy trên các hệ điều hành Windows, macOS và Linux. .NET Core có thể được sử dụng để xây dựng các loại ứng dụng khác nhau [...]
Read more →Trong thời đại công nghệ hiện nay, việc phát triển các ứng dụng web động và dịch vụ web là một nhu cầu thiết yếu của các doanh nghiệp và lập trình viên. ASP.NET, một framework mã nguồn mở được phát triển bởi Microsoft, đã nhanh chóng trở thành công cụ không thể thiếu cho việc này. Được thiết kế để đơn giản hóa quá trình phát triển ứng dụng web, ASP.NET cung cấp nhiều tính năng mạnh mẽ và linh hoạt, giúp lập trình viên dễ dàng tạo ra các ứng dụng chất lượng cao, bảo mật và hiệu quả. Cùng TopDev tìm hiểu ASP.NET là gì? và các lợi ích tuyệt vời của ASP.NET ngay trong bài viết dưới đây! [caption id="attachment_62863" align="alignnone" width="1101"] ASP.NET là gì? Phân tích thành phần và phương thức hoạt động chi tiết[/caption] ASP.NET là gì? ASP.NET là một framework mã nguồn mở phía server được phát triển bởi Microsoft, nhằm mụ [...]
Read more →