通常來(lái)說(shuō),find函數(shù)用于尋找某個(gè)序列的在string中第一次出現(xiàn)的位置。
茂南ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書(shū)銷(xiāo)售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話(huà)聯(lián)系或者加微信:18982081108(備注:SSL證書(shū)合作)期待與您的合作!
find函數(shù)有以下四種重載版本:
size_t?find?(const?string?str,?size_t?pos?=?0)?const?noexcept;
size_t?find?(const?char*?s,?size_t?pos?=?0)?const;
size_t?find?(const?char*?s,?size_t?pos,?a?href=";tn=44039180_cprfenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YLP1RLPhRYPW6LnvuBnWnz0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3En163nHD1nWcs"?target="_blank"?class="baidu-highlight"size_type/a?n)?const;
size_t?find?(char?c,?size_t?pos?=?0)?const?noexcept;
參數(shù)說(shuō)明:
str/s/c:要尋找的序列,可以是字符串(版本1),也可以是字符串字面值或者說(shuō)C風(fēng)格字符串(版本2、3,在版本3中,所尋找的序列是從s[0]開(kāi)始的前n個(gè)字符),也可以是字符(版本4)。
pos:從string的pos位置開(kāi)始尋找(注意第一個(gè)位置是0)。
函數(shù)返回序列第一次出現(xiàn)的位置,如果沒(méi)有找到則返回string::npos。
這得先 約定 二維 數(shù)組 存儲(chǔ) 方式
如果 m n 是固定 的 ,即編譯時(shí)常量 可以 使用 int arr[n][m];來(lái)存儲(chǔ) 二維 數(shù)組 也可以是 int p[m*n];
此時(shí) 第 j行 第i列 相對(duì) 首指針 偏移 sizeof(int)*(m*j +i)
查找 使用 向套的 for循環(huán) 即可
for(int j=0;jn;++j){
for(int i=0;im;++i){
if(p[m*j+i]==num){
*row=j;
*col=i;
return 1;
}
}
}
return 0;
如果 mn 非定值 那么就是 使用 動(dòng)態(tài) 數(shù)組 了 如果 使用 new int[n][m] 則 同上
如果 使用 vector vectorint 那么 參數(shù) 需要改變
如果 使用 int **parr=new int*[n] ;for(int i=0;in;++n)parr[i]=new int[n];則又是另一種 查找方法
如果 使用 最大行 最大列 的有范圍的動(dòng)態(tài) 二維 數(shù)組 也需要 另寫(xiě)查找 方法
不同的 存儲(chǔ)方式 獲得 指定列 行 的元素 的方式 是 不一樣 的。
#include?stdio.h
#include?stdlib.h
#include?time.h
#define?N?20
void?Sort(int?a[],int?n)??{
int?i,j,k,t;
for(i?=?0;?i??n?-?1;?++i)?{
k?=?i;
for(j?=?i?+?1;?j??n;?++j)?{
if(a[k]??a[j])?k?=?j;
}
if(i?!=?k)?{
t?=?a[k];
a[k]?=?a[i];
a[i]?=?t;
}
}
}
int?Find(int?a[],int?n,int?x)?{
int?low?=?0,high?=?n?-?1,mid;
while(low?=?high)?{
mid?=?(low?+?high)/2;
if(x?==?a[mid])?return?mid;
else?if(x??a[mid])?low?=?mid?+?1;
else?high?=?mid?-?1;
}
return?-1;
}
void?Show(int?a[],int?n)?{
int?i;
for(i?=?0;?i??n;?++i)?{
printf("%d?",a[i]);
}
printf("\n");
}
int?main()?{
int?a[20],i,x,res;
srand((unsigned)time(NULL));
for(i?=?0;?i??N;?++i)?
a[i]?=?rand()%N;?//?每個(gè)數(shù)都在1?--?100之間?
Show(a,N);
Sort(a,N);
Show(a,N);
x?=?rand()%100?+?1;
res?=?Find(a,N,x);
if(res?=?0)?printf("數(shù)值%d的下標(biāo)為%d。\n",a[res],res);
else?printf("數(shù)列中沒(méi)有找到數(shù)值%d。\n",x);
return?0;
}