Algoritmu ta' Tiftix ta' Oġġetti Multipli (Multiple-Item Search) f'C++- Spjegazzjoni, Eżempju, u Kodiċi

L-algoritmu ta' tfittxija ta' oġġetti multipli jintuża biex jinstabu l-okkorrenzi kollha ta' element speċifiku f'lista. B'differenza mill-algoritmi ta' tfittxija b'oġġett wieħed, dan l-approċċ iżomm kont ta' okkorrenzi multipli tal-element fil-mira u jirritorna lista tal-pożizzjonijiet tagħhom.

Kif taħdem

  1. Ibda mill-bidu tal-lista.
  2. Itteri minn kull element fil-lista.
  3. Qabbel l-element kurrenti mal-valur fil-mira.
  4. Jekk l-element kurrenti huwa ugwali għall-valur fil-mira, irreġistra l-pożizzjoni tiegħu.
  5. Kompli għall-element li jmiss u rrepeti l-passi 3-4.
  6. Wara li tgħaddi mill-lista kollha, erġa 'lura l-lista ta' pożizzjonijiet irreġistrati.

Eżempju

Ejja nikkunsidraw lista ta 'numri interi u rridu nsibu l-okkorrenzi kollha tan-numru 23.

Lista: {12, 23, 45, 23, 56, 23, 89, 90}

  1. Ibda mill-bidu: 12. Mhux in-numru mixtieq.
  2. Imxi għall-element li jmiss: 23. Taqbila misjuba, irreġistra l-pożizzjoni bħala 1.
  3. Imxi għall-element li jmiss: 45. Mhux in-numru mixtieq.
  4. Imxi għall-element li jmiss: 23. Taqbila misjuba, irreġistra l-pożizzjoni bħala 3.
  5. Imxi għall-element li jmiss: 56. Mhux in-numru mixtieq.
  6. Imxi għall-element li jmiss: 23. Taqbila misjuba, irreġistra l-pożizzjoni bħala 5.
  7. Imxi għall-element li jmiss: 89. Mhux in-numru mixtieq.
  8. Imxi għall-element li jmiss: 90. Mhux in-numru mixtieq.
  9. Wara l-iterazzjoni, ritorna lista ta' pożizzjonijiet: [1, 3, 5].

Eżempju Kodiċi f'C++

#include <iostream>  
#include <vector>  
  
std::vector<int> multipleItemSearch(const std::vector<int>& arr, int target) {  
    std::vector<int> positions;  
  
    for(int i = 0; i < arr.size(); ++i) {  
        if(arr[i] == target) {  
            positions.push_back(i);  
        }  
    }  
  
    return positions;  
}  
  
int main() {  
    std::vector<int> numbers = {12, 23, 45, 23, 56, 23, 89, 90};  
    int target = 23;  
  
    std::vector<int> result = multipleItemSearch(numbers, target);  
  
    std::cout << "Occurrences of " << target << " found at positions: ";  
    for(int pos: result) {  
        std::cout << pos << ";  
    }  
    std::cout << std::endl;  
  
    return 0;  
}  

Fl-eżempju mogħti, il- multipleItemSearch funzjoni tintuża biex issib l-okkorrenzi kollha tan-numru 23 f'lista ta 'numri interi. Ir-riżultat se jkun vettur li jkun fih il-pożizzjonijiet tal-okkorrenzi kollha(il-pożizzjonijiet jibdew minn 0).