Ú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é
- Tosaigh ó thús an liosta.
- Déan atriall trí gach eilimint sa liosta.
- Déan comparáid idir an eilimint reatha agus an luach sprice.
- Más ionann an eilimint reatha agus an spriocluach, taifead a suíomh.
- Lean ar aghaidh go dtí an chéad eilimint eile agus déan céimeanna 3-4 arís.
- 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}
- Tosaigh ón tús: 12. Ní hé an uimhir atá ag teastáil.
- Bog go dtí an chéad eilimint eile: 23. Meaitseáil aimsithe, taifead suíomh mar 1.
- Téigh go dtí an chéad eilimint eile: 45. Ní hé an uimhir atá uait.
- Bog go dtí an chéad eilimint eile: 23. Comhoiriúnú aimsithe, taifead suíomh mar 3.
- Téigh go dtí an chéad eilimint eile: 56. Ní hé an uimhir atá uait.
- Bog go dtí an chéad eilimint eile: 23. Aimsiú aimsithe, taifead suíomh mar 5.
- Téigh go dtí an chéad eilimint eile: 89. Ní hé an uimhir atá uait.
- Téigh go dtí an chéad eilimint eile: 90. Ní hé an uimhir inmhianaithe.
- 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).