thảo luận [C++] Thớt bàn luận, hỏi đáp thắc mắc về C++

Code:
const std::vector<int> v;
    auto iter = v.begin();

TH này cái iter chỉ vào vật ko đổi thì nó là const_iter

vậy thì có khác gì cái TH dưới đây với cbegin? Cũng là const_iter ?

Code:
const std::vector<int> v;
    auto iter = v.cbegin();
 
Code:
const std::vector<int> v;
    auto iter = v.begin();

TH này cái iter chỉ vào vật ko đổi thì nó là const_iter

vậy thì có khác gì cái TH dưới đây với cbegin? Cũng là const_iter ?

Code:
const std::vector<int> v;
    auto iter = v.cbegin();
https://stackoverflow.com/questions...ifference-between-cbegin-and-begin-for-vector
begin sẽ trả về iter hoặc const_iter tùy vào specifier của thằng vector
Còn cbegin thì luôn trả về const_iter
Trong ví dụ trên thì theo mình hiểu 2 thằng ko khác gì nhau.
Còn ví dụ này thì khác nè:

Code:
std::vector<int> v;
    auto iter_c = v.cbegin(); //const_iter
    auto iter = v.begin(); //iter
 
Các bác cho e hỏi sao destructor được gọi 2 lần nhỉ :confused:
C++:
#include <stack>
#include <iostream>

struct A{
    A() {std::cout<<"A constructor"<<std::endl;}
    ~A() {std::cout<<"A destructor"<<std::endl;}
};

int main(){
    std::stack<A> mystack;
    A a;
    mystack.push(a);
    mystack.pop();
    std::cout<<"Quitting"<<std::endl;
}
 
Các bác cho e hỏi sao destructor được gọi 2 lần nhỉ :confused:
C++:
#include <stack>
#include <iostream>

struct A{
    A() {std::cout<<"A constructor"<<std::endl;}
    ~A() {std::cout<<"A destructor"<<std::endl;}
};

int main(){
    std::stack<A> mystack;
    A a;
    mystack.push(a);
    mystack.pop();
    std::cout<<"Quitting"<<std::endl;
}
pop stack gọi destructor của phần tử trong stack, thoát main gọi destructor của biến a
 
Các bác cho e hỏi sao destructor được gọi 2 lần nhỉ :confused:
C++:
#include <stack>
#include <iostream>

struct A{
    A() {std::cout<<"A constructor"<<std::endl;}
    ~A() {std::cout<<"A destructor"<<std::endl;}
};

int main(){
    std::stack<A> mystack;
    A a;
    mystack.push(a); // push copy của a
    mystack.pop(); // dtor copy của a
    std::cout<<"Quitting"<<std::endl;
}  // dtor a
 
Chào mấy bác, vừa back về C++ làm cái project cheat cá nhân, giờ nó phình to qua :v gần 6 7 cái header mỗi cái lại có 6 -7 file file triển khai, chưa tính đống header của tụi lib bên ngoài nữa, giờ cái pch của mình như cái đống rác chả biết đâu mà lần, rồi mấy header con con include nhiều header khác nữa, mặc dù vẫn giờ build bình thường nhưng nhìn như hạch vậy, tương lai thêm chục cái class mới thì sợ không handle được dụ include này luôn quá.
Các bác có cao kiến gì không, mình cũng tầm newbie C thôi nên tổ chức code cũng không ok
 
Chào mấy bác, vừa back về C++ làm cái project cheat cá nhân, giờ nó phình to qua :v gần 6 7 cái header mỗi cái lại có 6 -7 file file triển khai, chưa tính đống header của tụi lib bên ngoài nữa, giờ cái pch của mình như cái đống rác chả biết đâu mà lần, rồi mấy header con con include nhiều header khác nữa, mặc dù vẫn giờ build bình thường nhưng nhìn như hạch vậy, tương lai thêm chục cái class mới thì sợ không handle được dụ include này luôn quá.
Các bác có cao kiến gì không, mình cũng tầm newbie C thôi nên tổ chức code cũng không ok
Bạn dùng ide đi để nó quản cho 🥲
 
Chào mấy bác, vừa back về C++ làm cái project cheat cá nhân, giờ nó phình to qua :v gần 6 7 cái header mỗi cái lại có 6 -7 file file triển khai, chưa tính đống header của tụi lib bên ngoài nữa, giờ cái pch của mình như cái đống rác chả biết đâu mà lần, rồi mấy header con con include nhiều header khác nữa, mặc dù vẫn giờ build bình thường nhưng nhìn như hạch vậy, tương lai thêm chục cái class mới thì sợ không handle được dụ include này luôn quá.
Các bác có cao kiến gì không, mình cũng tầm newbie C thôi nên tổ chức code cũng không ok
cái pch nên include những thứ chính yếu và class nào cũng phải xài thôi bác ơi - C++ thì phải tốn thời gian để refactor chứ mình thấy không có cách nào hết. Không biết các bác khác có cao kiến gì không.
 
thằng C++ này cuối cùng cũng chỉ để học thôi, chứ kiếm job ngoài Hà Nội ít quá các thím, toàn chèn thêm QT hoặc đá sang embedded, viễn thông, ...
 
thằng C++ này cuối cùng cũng chỉ để học thôi, chứ kiếm job ngoài Hà Nội ít quá các thím, toàn chèn thêm QT hoặc đá sang embedded, viễn thông, ...
C++ giờ chắc có LG, Viettel, Toshiba với Bosh tuyển, trên linkedin thi thoảng cũng có job của vài cty khác
 
Hi các bác, hơi off topic một tí nhưng mà em muốn hỏi về cách config project c++ với cmake trên vscode được không. Hiện tại project của em đang sử dụng thư viện boost và intellisense báo lỗi liên quan đến thư viện như hình mặc dù code có thể compile bình thường bằng cmake.
1719735479851.png

Đây là config cmake của em:
1719735602799.png

Em không rõ config bị lỗi ở phần nào nên có bác nào biết chỉ giúp em với. Em cảm ơn
 
C++ ngoài làm nhúng ra thì phần mềm có làm gì hơn bọn khác không các thím
Bỏ qua mảng desktop thì:
90% các game AAA viết = C++
90% các database quan trọng (Mysql, postgres, mongodb, redis) viết = C/C++
90% các hệ thống core trading của HFT / hedge fund viết = C++, infra của các công ty lớn không dưới 50% là C++.
Chỉ sợ ko đủ giỏi chứ ko bao giờ thiếu việc làm. Và lương thì luôn cao hơn mặt bằng chung.
 
Back
Top