cuốn sách gpt4 ai đã làm

Đảo ngược/hoán đổi giữa chừng

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-03 04:29:20 30 4
mua khóa gpt4 Nike

đảo ngược toàn bộ vectơ,hiện hữu std::đảo ngược. Nhưng tôi muốn "chia" một vectơ thành hai phần (chính xác ở giữa) và đảo ngược cả hai, đặt chúng lại với nhau và đảo ngược toàn bộ một lần nữa vectơ . Ví dụ: chúng tôi có:

0 1 2 3 4 5 6 7

Chia nó thành hai phần và đảo ngược:

0 1 2 3 -> 3 2 1 04 5 6 7-> 7 6 5 4, ghép các phần đảo ngược lại với nhau 3 2 1 0 7 6 5 4 Và đảo ngược nó một lần nữa:4 5 6 7 0 1 2 3.

我尝试使用 sao chép ngược Nhưng điều này đã không thành công. Đây là đoạn mã của tôi:

std::vector::iterator mid = nr.begin() + nr.size() / 2;
std::vector::iterator midLast = nr.size() / 2 + nr.end();
vectơ temp1, temp2;
std::reverse_copy(nr.begin(),mid, std::begin(temp1));
std::reverse_copy(midLast, nr.end(), std::begin(temp2));
std::reverse(temp1.begin(), temp2.end());

Tôi có thể triển khai phương pháp của mình bằng cách nào? Cảm ơn!

câu trả lời hay nhất

std::reverse(nr.begin(), nr.begin() + nr.size() / 2 );
std::reverse(nr.begin() + nr.size() / 2 + ((nr.size() % 2) != 0 ? 1 : 0), nr.end());
std::reverse(nr.begin(), nr.end());

cho (auto& it : nr)
{
std::cout << nó << " ";
}

0, 1, 2, 3, 4, 5, 6, 7, 8Đầu ra của

5 6 7 8 4 0 1 2 3

0, 1, 2, 3, 4, 5, 6, 7Đầu ra của

4 5 6 7 0 1 2 3

Về c++ - đảo ngược/hoán đổi giữa luồng, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/45631205/

30 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress