Đến Từ Thế Giới Trò Chơi Hỏa Hệ Pháp Gia

Lượt đọc: 12587 | 0 Đánh giá: 0/10 Sao
★★★★★★★★★★
★★★★★★★★★★
« Lùi Tiến »
Chương 330
Khổ chiến

❊ ❊ ❊

. ⁄ + ^* v Đôi mắt của La Tư Lôi Đặc và Gómez ánh lên vẻ kiên định.

#include <iostream>

#include <vector>

#include <string>

#include <algorithm>

#include

using namespace std;

// Định nghĩa cấu trúc cho mỗi đoạn dữ liệu

struct DataSegment {

int start;

int length;

string data;

};

// Hàm hiển thị thông tin của DataSegment

void displayDataSegment(const DataSegment& segment) {

cout << "Start: " << segment.start << ", Length: " << segment.length << ", Data: " << segment.data << endl;

}

int main() {

// 1. Khởi tạo (Initialization)

vector<DataSegment> segments;

//2. Thêm đoạn dữ liệu (Add Data Segment)

DataSegment segment1 = {0, 10, "AAAAAAAAAA"};

segments.push_back(segment1);

DataSegment segment2 = {15, 5, "BBBBB"};

segments.push_back(segment2);

// 3. Hiển thị các đoạn dữ liệu hiện có (Display Existing Data Segments)

cout << "Initial Data Segments:" << endl;

for (const auto& segment : segments) {

displayDataSegment(segment);

}

cout << endl;

// 4. Kiểm tra xem một vị trí có thuộc đoạn dữ liệu nào không (Check if a Location Belongs to a Data Segment)

int locationToCheck = 5;

bool found = false;

for (const auto& segment : segments) {

if (locationToCheck >= segment.start && locationToCheck < segment.start + segment.length) {

cout << "Location " << locationToCheck << " belongs to segment starting at " << segment.start << endl;

found = true;

break;

}

...

if (!found) {

cout << "Location " << locationToCheck << " does not belong to any segment." << endl;

}

cout << endl;

//5. Tìm đoạn dữ liệu chứa một vị trí (Find Data Segment Containing a Location)

int locationToFind = 17;

DataSegment* foundSegment = nullptr;

for (auto& segment : segments) {

if (locationToFind >= segment.start && locationToFind < segment.start + segment.length) {

foundSegment = segment;

break;

}

}

if (foundSegment != nullptr) {

cout << "Location " << locationToFind << " is found in segment: " << endl;

displayDataSegment(*foundSegment);

} else {

cout << "Location " << locationToFind << " is not found in any segment." << endl;

}

cout << endl;

// 6. Xóa một đoạn dữ liệu (Remove a Data Segment)

int indexToRemove = 0; // Xóa đoạn đầu tiên

if (indexToRemove >= 0 && indexToRemove < segments.size()) {

segments.erase(segments.begin() + indexToRemove);

cout << "Segment at index " << indexToRemove << " removed." << endl;

} else {

cout << "Invalid index to remove." << endl;

}

// 7. Hiển thị các đoạn dữ liệu sau khi xóa (Display Data Segments After Removal)

cout << "Data Segments After Removal:" << endl;

for (const auto& segment : segments) {

displayDataSegment(segment);

}

cout << endl;

//8. Thêm đoạn dữ liệu mới, có thể bị trùng lặp với đoạn đã có (Add New Data Segment - May Overlap)

DataSegment segment3 = {12, 7, "CCCCCCC"};

segments.push_back(segment3);

// 9. Hiển thị các đoạn dữ liệu sau khi thêm đoạn trùng lặp (Display Data Segments After Adding Overlapping Segment)

cout << "Data Segments After Adding Overlapping Segment:" << endl;

for (const auto& segment : segments) {

displayDataSegment(segment);

}

cout << endl;

// 10. Sắp xếp các đoạn dữ liệu theo vị trí bắt đầu (Sort Data Segments by Start Position)

sort(segments.begin(), segments.end(), [](const DataSegment& a, const DataSegment& b) {

return a.start < b.start;

});

// 11. Hiển thị các đoạn dữ liệu sau khi sắp xếp (Display Data Segments After Sorting)

cout << "Data Segments After Sorting:" << endl;

for (const auto& segment : segments) {

displayDataSegment(segment);

}

cout << endl;

// 12. Giải phóng bộ nhớ (Cleanup - Not really needed in this simple example but good practice)

segments.clear();

return 0;

}

Gemini Dịch
Nguồn: TTV/VNthuquan
Được bạn: Mọt Sách đưa lên
vào ngày: 8 tháng 2 năm 2026

« Lùi Tiến »