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
166 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!

sumber:php.cn
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