<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Remove on Sobamemil</title>
    <link>https://blog.sobamemil.com/tags/remove/</link>
    <description>Recent content in Remove on Sobamemil</description>
    <generator>Hugo</generator>
    <language>ko</language>
    <lastBuildDate>Mon, 09 Mar 2020 16:07:40 +0900</lastBuildDate>
    <atom:link href="https://blog.sobamemil.com/tags/remove/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>명품 C&#43;&#43; programming 실습 문제 10장 6번</title>
      <link>https://blog.sobamemil.com/posts/116-%EB%AA%85%ED%92%88-c-programming-%EC%8B%A4%EC%8A%B5-%EB%AC%B8%EC%A0%9C-10%EC%9E%A5-6%EB%B2%88/</link>
      <pubDate>Mon, 09 Mar 2020 16:07:40 +0900</pubDate>
      <guid>https://blog.sobamemil.com/posts/116-%EB%AA%85%ED%92%88-c-programming-%EC%8B%A4%EC%8A%B5-%EB%AC%B8%EC%A0%9C-10%EC%9E%A5-6%EB%B2%88/</guid>
      <description>&lt;p&gt;&lt;strong&gt;문제 :&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;다음 함수는 매개 변수로 주어진 int 배열 src에서 배열 minus에 들어있는 같은 정수를 모두 삭제한 새로운 int 배열을 동적으로 할당받아 리턴한다.&lt;/p&gt;
&lt;p&gt;retSize는 remove() 함수의 실행 결과를 리턴하는 배열의 크기를 전달받는다.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;&lt;/th&gt;
          &lt;th&gt;&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;1&lt;/td&gt;
          &lt;td&gt;int * remove(int src[], int sizeSrc, int minus[], int sizeMinus, int&amp;amp; resSize);&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;템플릿을 이용하여 remove를 일반화하라.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;실행 결과 :&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://img.sobamemil.com/posts/116/img_1.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;목적 및 힌트 :&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;함수의 일반화에 대한 이해, 템플릿 함수 만들기&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;코드 :&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;&lt;/th&gt;
          &lt;th&gt;&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36  37  38  39  40  41&lt;/td&gt;
          &lt;td&gt;#include &lt;iostream&gt;  using namespace std;    template &amp;lt;class T&amp;gt;  T* remove(T src[], int sizeSrc, T minus[], int sizeMinus, int &amp;amp; retsize){  int j;  T* tmpArray = new T[sizeSrc];  for(int i=0; i&amp;lt;sizeSrc; i++){  for(j=0; j&amp;lt;sizeMinus; j++){  if(src[i] == minus[j]){ // src의 원소와 minus의 원소가 같으면 j의 값을 하나 내린 후 break  &amp;ndash;j;  break;  }  }  if(j==sizeMinus){ // j==sizeMinus 라는건 src와 minus에 같은 원소가 없어 중간에 break 되지 않은 경우  tmpArray[retsize] = src[i]; // src[i]를 동적 할당 하여 생성한 tmpArray에 삽입  retsize++; // return 할 size의 값을 하나 올려줌  }  }  return tmpArray;  }    int main() {  int a[] = { 1,2,3,4,5,6,7,8,9,10 };  int b[] = { 5,6,7,8,9 };  int size=0;  int *p = remove(a, 10, b,5, size);  for (int i = 0; i &amp;lt; size; ++i)  cout &amp;laquo; p[i] &amp;laquo; &amp;rsquo; &amp;lsquo;;  cout &amp;laquo; endl;  delete[] p;  size = 0;  char c[] = { &amp;lsquo;a&amp;rsquo;,&amp;lsquo;b&amp;rsquo;,&amp;lsquo;i&amp;rsquo;,&amp;rsquo;m&amp;rsquo;,&amp;lsquo;c&amp;rsquo;,&amp;rsquo;d&amp;rsquo;,&amp;rsquo;e&amp;rsquo;,};  char d[] = { &amp;lsquo;k&amp;rsquo;,&amp;lsquo;i&amp;rsquo;,&amp;rsquo;m&amp;rsquo;,&amp;rsquo;n&amp;rsquo;,&amp;lsquo;u&amp;rsquo; };  char *q = remove(c, 7, d, 5,size);  for (int i = 0; i &amp;lt; size; ++i)  cout &amp;laquo; q[i] &amp;laquo; &amp;rsquo; &amp;lsquo;;  cout &amp;laquo; endl;  delete[] q;    }&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;설명 :&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
