[C++기초] 12. STL 알고리즘

INDEX

  1. STL알고리즘
  2. find()알고리즘
  3. STL알고리즘
  4. 정리

STL알고리즘

STL알고리즘이란

STL알고리즘의 유형

예시 : vector를 다른 vector로 복사하기

#include<algorithm>
int main()
{
    std::vector<int> scores;

    socres.push_back(10);
    socres.push_back(70);
    socres.push_back(40);

    std::vector<int> copiedScores;
    copiedScores.resize(scores.size());

    std::copy(scores.begin(), scores.end(), copiedScores.begin());

    for(std::vector<int>::iterator it = copiedScores.begin(); ++it)
    {
        std::cout<<*it<<std::endl;
    }

    return 0;
}

copy()

find()알고리즘

find()알고리즘을 만들어보자!

#include<iostream>
#pragma once
namespace samples
{
    //포인터를 써서 Find()를 만드는 방법은?
    namespace Algorithm
    {
        //자료형 2개, ITER는 반복자, T는 데이터형
        template<typename ITER, typename T>
        //begin/end와 찾는 값을 받음
        const ITER* Find(const ITER* begin, const ITER* end, const T& value);
        {
            //begin부터
            const ITER* p = begin;
            //end에 이르기까지 반복
            while(p != end)
            {
                //값을 찾으면 break;
                if (*p == value)
                {
                    break;
                }
                ++p;
            }
            //위치를 반환
            return p;
        }
    }
};
#include<iostream>
#include<vector>
#include"Algorithm.h"
using namespace std;
namespace samples
{
    void FindFunctionExample()
    {
        const int ARRAY_SIZE = 10;
        int arr[ARRAY_SIZE] = { 10, 20, 13, 52, 32, 67, 89, 15, 46, 3};

        const int* ptr = Algorithm::Find(arr, arr+ARRAY_SIZE, 67);
        cout<<*ptr;
    }
}

STL알고리즘

STL알고리듬 목록

정리