728x90
반응형
merge
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
template<typename C> void dump(const char *desc, C c) { cout.width(12);cout << left << desc << "==> ";
copy(c.begin(),c.end(),ostream_iterator<typename C::value_type>(cout," ")); cout << endl; }
void main()
{
int i;
vector<int> vi1,vi2,vi3;
for (i=1;i<5;i++) vi1.push_back(i);
for (i=3;i<9;i++) vi2.push_back(i);
merge(vi1.begin(),vi1.end(),vi2.begin(),vi2.end(),back_inserter(vi3));
dump("merge",vi3);
vector<int> vi4;
for (i=1;i<5;i++) vi4.push_back(i);
for (i=3;i<9;i++) vi4.push_back(i);
inplace_merge(vi4.begin(),vi4.begin()+4,vi4.end());
dump("inplace_merge",vi4);
}
minmax
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
void main()
{
int i=3,j=5;
printf("둘 중 작은 값은 %d이고 큰 값은 %d이다.\n",min(i,j),max(i,j));
int ari[]={49,26,19,77,34,52,84,34,92,69};
vector<int> vi(&ari[0],&ari[10]);
printf("벡터에서 가장 작은 값은 %d이고 가장 큰 값은 %d이다.\n",
*min_element(vi.begin(),vi.end()),*max_element(vi.begin(),vi.end()));
}
accumulate
#include <iostream>
#include <vector>
#include <numeric>
#include <algorithm>
using namespace std;
template<typename C> void dump(const char *desc, C c) { cout.width(12);cout << left << desc << "==> ";
copy(c.begin(),c.end(),ostream_iterator<typename C::value_type>(cout," ")); cout << endl; }
void main()
{
int ar1[]={49,26,19,77,34,52,84,34,92,69};
vector<int> vi1(&ar1[0],&ar1[10]);
printf("벡터의 총합은 %d이다.\n",accumulate(vi1.begin(),vi1.end(),0));
int ar2[]={1,2,3,4,5,6,7,8,9,10};
vector<int> vi2(&ar2[0],&ar2[10]);
vector<int> vi3;
partial_sum(vi2.begin(),vi2.end(),back_inserter(vi3));
dump("부분합",vi3);
}
adjacent_difference
#include <iostream>
#include <vector>
#include <numeric>
#include <algorithm>
using namespace std;
template<typename C> void dump(const char *desc, C c) { cout.width(12);cout << left << desc << "==> ";
copy(c.begin(),c.end(),ostream_iterator<typename C::value_type>(cout," ")); cout << endl; }
void main()
{
int ar[]={1,2,5,10,15,12,20};
vector<int> vi(&ar[0],&ar[7]);
vector<int> vi2;
adjacent_difference(vi.begin(),vi.end(),back_inserter(vi2));
dump ("부분차 ",vi2);
}
728x90
반응형
'프로그래밍 기록 > stl' 카테고리의 다른 글
반복자 ostream_iterator,istream_iterator,fwdbiiterator,advance,wrongiter,copyoverwrite,vectorinsert,revcopy,constiterator,revit,revfind,revbase (0) | 2023.12.09 |
---|---|
next_permutation,inner_product,lexicographical,make_heap (0) | 2023.12.09 |
replace,partition,transform,sort,lower_bound (0) | 2023.12.09 |
generate, remove, remove_copy, unique (0) | 2023.12.09 |
random_shuffle (0) | 2023.12.09 |
댓글