Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Isih Data dalam C Semasa Menjejaki Indeks Asal?

Bagaimanakah Saya Boleh Isih Data dalam C Semasa Menjejaki Indeks Asal?

Barbara Streisand
Lepaskan: 2025-01-03 12:54:40
asal
202 orang telah melayarinya

How Can I Sort Data in C   While Tracking Original Indices?

Isih dengan Penjejakan Indeks dalam C

Mengisih data sambil mengekalkan indeks asal ialah tugas biasa dalam analisis dan manipulasi data. Dalam C , untuk mencapai ini memerlukan beberapa teknik pengaturcaraan yang bijak.

Untuk mengisih jujukan sampel dalam tertib menaik sambil menjejaki indeks asalnya, seseorang boleh menggunakan ungkapan lambda dan perpustakaan standard. Fungsi sort_indexes di bawah menunjukkan pendekatan ini:

template <typename T>
vector<size_t> sort_indexes(const vector<T> &v) {
  // Initialize original index locations
  vector<size_t> idx(v.size());
  iota(idx.begin(), idx.end(), 0);

  // Sort indexes based on values in v using std::stable_sort to maintain original order for equal values
  stable_sort(idx.begin(), idx.end(),
    [&v](size_t i1, size_t i2) { return v[i1] < v[i2]; });

  return idx;
}
Salin selepas log masuk

Fungsi ini mengembalikan vektor indeks yang boleh digunakan dalam lelaran berikutnya:

for (auto i : sort_indexes(v)) {
  cout << v[i] << endl;
}
Salin selepas log masuk

Penyesuaian boleh dibuat untuk menyediakan fungsi isihan, pembanding, atau penyusunan semula automatik vektor asal dalam fungsi sort_indexes.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Isih Data dalam C Semasa Menjejaki Indeks Asal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan