Tôi có mã nguồn Bitcoin (đa luồng), tôi sẽ thêm một số dòng mới. Trên mạng Bitcoin, các thông điệp dữ liệu được trao đổi trong đó dữ liệu được lưu trữ dưới dạng vectơ. Tôi muốn thực hiện một số thao tác khi kích thước vectơ tăng lên指令:
Cách viết mẫu sau trong C++ để thực thi các câu lệnh bên trong if:
if ("vVector.size() không tăng")
//*chỉ dẫn*
?
Lưu ý: vVector sẽ tự động tăng dần theo thời gian. Nó thực sự là một bản sao của một vectơ khác thu thập nội dung và mở rộng mà tôi không cần hoặc không muốn kiểm soát nó.
biên tập:
Khi tôi làm điều này:
if (!(vVector.size()++))
// làm bất cứ điều gì ở đây
Tôi nhận được lỗi sau:Yêu cầu giá trị lvalue làm toán hạng tăng
vVector được điền từ một hàm được khai báo trong một tệp tiêu đề riêng biệt sang một hàm khác trong cùng một tệp cpp.
Đây là đoạn mã có mô tả ngắn:http://hastebin.com/amisuvafab.coffee
int init_size = v.size();
...
if(init_size == v.size()) {
// làm bất cứ điều gì ở đây
}
Khi chỉnh sửa:
std::vector
Kích thước của sẽ chỉ tăng khi bạn chèn các phần tử vào đó. Vì vậy,vVector.size()++
Nó không có ý nghĩa ngay từ đầu.
Lý do bạn gặp lỗi là do thực thi if(!(vVector.size()++))
là bất hợp pháp. std::vector::kích thước
Hàm thành viên sẽ trả về một giá trị
thay vì tăng sau toán tử++
của giá trị
> Yêu cầu. Bây giờ về giá trị
Và giá trị
Xem sự khác biệt giữa liên kết .
Tôi là một lập trình viên xuất sắc, rất giỏi!