๐ŸŽ… ์ค‘์š”! find : ์•Œ๊ณ ๋ฆฌ์ฆ˜ vs string ๋‹ค๋ฆ„...

phoenixKimยท2021๋…„ 8์›” 1์ผ
0

์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ธฐ๋ฒ•

๋ชฉ๋ก ๋ณด๊ธฐ
13/72

์—…๋ฐ์ดํŠธ

  • algorithm์˜ find์™€ string ์˜ find๋Š” ๋‹ค๋ฆ„.
    1) algorithm์˜ find

  • ์ •์˜

    first์™€ last์—์„œ์˜ ์›์†Œ์™€ ๋น„๊ต๊ฐ’์„ ๋น„๊ตํ•˜๊ณ ,
    ์ผ์น˜ํ•˜๋Š” ์›์†Œ๊ฐ€ ์žˆ์œผ๋ฉด, ๊ทธ ์ค‘์—์„œ๋„ ์ฒซ๋ฒˆ์งธ ์›์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ฐ˜๋ณต์ž๋ฅผ ๋ฐ˜ํ™˜ํ•จ.
    ์—†๋‹ค๋ฉด, end() ์ดํ„ฐ๋ ˆ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•จ.

  • ์‚ฌ์šฉ๋ฒ•

    find( begin() , end() , ์ฐพ์„ ๋Œ€์ƒ๊ฐ’)

2) string์˜ find
- ์ •์˜
: first์™€ last์—์„œ์˜ ์›์†Œ๋ฅผ ๋น„๊ตํ•˜๊ณ ,
์ผ์น˜ํ•˜๋Š” ์›์†Œ๊ฐ€ ์žˆ์œผ๋ฉด, ์œ„์น˜๊ฐ’์„ ๋ฐ˜ํ™˜ํ•จ. ์—†์œผ๋ฉด string๊ฐ์ฒด.npos๋ฅผ ๋ฐ˜ํ™˜ํ•จ.

  • ๊ด€๋ จ ์˜ˆ์ œ..

๊ด€๋ จ ๋ฌธ์ œ

: ๋‹จ์–ด๋ณ€ํ™˜
: 1436 ์˜ํ™”๊ฐ๋… ์ˆŒ.

์‹œํ€€์Šค ์ปจํ…Œ์ด๋„ˆ

  • ๋ณ€์ˆ˜์— find๋ฅผ ํ†ตํ•ด end() ๊ฐ’ ๋น„๊ต๋ฅผ ํ†ตํ•ด ๊ฒ€์ƒ‰์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

๋ฒกํ„ฐ์˜ ๊ฒฝ์šฐ

  • ๋ณ€์ˆ˜์— findํ•จ์ˆ˜ ์‚ฌ์šฉ ๋ชปํ•˜๋ฏ€๋กœ iter๋ฅผ ํ†ตํ•ด ์ง„ํ–‰ํ•˜์ž.

auto iter = find(v.begin(), v.end(), target);

iter != end()

์ด๋ ‡๊ฒŒ

v.find() : ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค!

  • ๊ด€๋ จ๋ฌธ์ œ : ์นด์นด์˜ค 2018 ์บ์‹œ

find๋ฅผ ํ†ตํ•ด ์ธ๋ฑ์Šค ์ ‘๊ทผ

: auto iter = find(v.begin(), v.end(), target);
์ดํ›„์— iter ์™€ v.begin()์„ ๋บŒ์œผ๋กœ์„œ ์ธ๋ฑ์Šค ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.
์ด๋•Œ๋Š” iter๊ฐ€ v.end()์— ์žˆ์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์˜ˆ์™ธ์ฒ˜๋ฆฌ ํ•ด์•ผํ•œ๋‹ค.

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>

using namespace std;


int main(void) {

	vector<int> v{ 1,2,3,4 };

	auto iter = find(v.begin(), v.end(), 13);

	if (iter != v.end())
	{
		int index = distance(v.begin(), iter);
		cout << index << endl;
	}	
	else
	{
		cout << "์ปจํ…Œ์ด๋„ˆ์— ๊ฐ’์ด ์—†์Šต๋‹ˆ๋‹ค." << endl;
	}

	iter = find(v.begin(), v.end(), 2);

	if (iter != v.end())
	{
		int index = distance(v.begin(), iter);
		cout << index << "๋ฒˆ ์ธ๋ฑ์Šค์— ๊ฐ’์ด ์žˆ์Šต๋‹ˆ๋‹ค. "<< endl;
	}
	else
	{
		cout << "์ปจํ…Œ์ด๋„ˆ์— ๊ฐ’์ด ์—†์Šต๋‹ˆ๋‹ค.";
	}


}

string์—์„œ์˜ findํ•จ์ˆ˜ ์‚ฌ์šฉ

find ํ•จ์ˆ˜์˜ ๋ฆฌํ„ด๊ฐ’์€ ๋ฐœ๊ฒฌ๋œ ๋ฌธ์ž์—ด์˜ ์‹œ์ž‘ ์ธ๋ฑ์Šค ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
๋งŒ์•ฝ์— ์ฐพ์ง€ ๋ชปํ–ˆ์„ ๊ฒฝ์šฐ์—๋Š” string:npos๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

์˜ˆ์ œ

  • ๋ฌธ์ž์—ด ์กด์žฌํ•  ๊ฒฝ์šฐ

    : ๋ฌธ์ž์—ด 12๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ ์žˆ์ง€๋งŒ, ๋งจ ์•ž์— ์œ„์น˜ํ•œ ์ธ๋ฑ์Šค 3๋ฒˆ์„ ์ถœ๋ ฅํ–ˆ๋‹ค.

  • ์œ„์˜ ํ•œ๊ณ„๋ฅผ ๊ทน๋ณตํ•˜์ž.

    find("word" , int index )
    : index ๋ฒˆ ์›์†Œ๋ถ€ํ„ฐ word๊ฐ€ ์žˆ๋Š”์ง€๋ฅผ find ํ•จ.

: ๋ฌธ์ž์—ด 12๊ฐ€ ๋ช‡๊ฐœ ์žˆ๋Š”์ง€ ์นด์šดํŒ… ์ถœ๋ ฅํ•˜๋ผ. : ๋‡Œ ์ž๊ทน stl : p.537

  • ๋ฌธ์ž์—ด ์กด์žฌํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ.
profile
๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ

0๊ฐœ์˜ ๋Œ“๊ธ€

๊ด€๋ จ ์ฑ„์šฉ ์ •๋ณด