Algartam Cuardaigh Ilmhír (Multiple-Item Search) i C++- Míniú, Sampla, agus Cód

Úsáidtear an t-algartam cuardaigh il-mhír chun gach teagmhas d'eilimint ar leith a fháil i liosta. Murab ionann agus algartaim chuardaigh aon-mhír, coinníonn an cur chuige seo teagmhais iolracha den sprioceilimint agus cuireann sé liosta ar ais dá seasaimh.

Conas a oibríonn sé

  1. Tosaigh ó thús an liosta.
  2. Déan atriall trí gach eilimint sa liosta.
  3. Déan comparáid idir an eilimint reatha agus an luach sprice.
  4. Más ionann an eilimint reatha agus an spriocluach, taifead a suíomh.
  5. Lean ar aghaidh go dtí an chéad eilimint eile agus déan céimeanna 3-4 arís.
  6. Tar éis atriall tríd an liosta iomlán, cuir ar ais liosta na bpost taifeadta.

Sampla

Déanaimis liosta de na slánuimhreacha a mheas agus ba mhaith linn gach teagmhas den uimhir 23 a fháil.

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

  1. Tosaigh ón tús: 12. Ní hé an uimhir atá ag teastáil.
  2. Bog go dtí an chéad eilimint eile: 23. Meaitseáil aimsithe, taifead suíomh mar 1.
  3. Téigh go dtí an chéad eilimint eile: 45. Ní hé an uimhir atá uait.
  4. Bog go dtí an chéad eilimint eile: 23. Comhoiriúnú aimsithe, taifead suíomh mar 3.
  5. Téigh go dtí an chéad eilimint eile: 56. Ní hé an uimhir atá uait.
  6. Bog go dtí an chéad eilimint eile: 23. Aimsiú aimsithe, taifead suíomh mar 5.
  7. Téigh go dtí an chéad eilimint eile: 89. Ní hé an uimhir atá uait.
  8. Téigh go dtí an chéad eilimint eile: 90. Ní hé an uimhir inmhianaithe.
  9. Tar éis atriallta, seol liosta suíomhanna ar ais: [1, 3, 5].

Cód Samplach i 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;  
}  

Sa sampla tugtha, multipleItemSearch úsáidtear an fheidhm chun gach teagmhas den uimhir 23 a fháil i liosta slánuimhreacha. Is é an toradh a bheidh ann ná veicteoir ina mbeidh suíomhanna gach tarluithe(tosaíonn na suíomhanna ó 0).