728x90
반응형
replace
#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()
{
const char *str="Notebook Computer";
vector<char> vc(&str[0],&str[strlen(str)]);
dump("원본",vc);
replace(vc.begin(),vc.end(),'o','a');
dump("replace",vc);
rotate(vc.begin(),vc.begin()+2,vc.end());
dump("rotate",vc);
reverse(vc.begin(),vc.end());
dump("reverse",vc);
}
partition
#include <iostream>
#include <vector>
#include <algorithm>
#include <functional>
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 ari[]={3,1,4,1,5,9,2,6,5,3,5,8,9,7,9,3,2,3,8};
vector<int> vi(&ari[0],&ari[sizeof(ari)/sizeof(ari[0])]);
dump("원본",vi);
partition(vi.begin(),vi.end(),bind2nd(greater<int>(),5));
dump("partition",vi);
vector<int> ar2(&ari[0],&ari[sizeof(ari)/sizeof(ari[0])]);
stable_partition(ar2.begin(),ar2.end(),bind2nd(greater<int>(),5));
dump("stable",ar2);
}
transform
#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; }
int multi2(int a)
{
return a*2;
}
int add(int a, int b)
{
return a+b;
}
void main()
{
vector<int> src(5), dest(5), sum;
int i;
for (i=0;i<5;i++) src[i]=i;
transform(src.begin(),src.end(),dest.begin(),multi2);
dump("src",src);
dump("dest",dest);
transform(src.begin(),src.end(),dest.begin(),back_inserter(sum),add);
dump("sum",sum);
}
sort
#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 ari[]={49,26,19,77,34,52,84,34,92,69};
vector<int> vi(&ari[0],&ari[10]);
dump("원본",vi);
sort(vi.begin(),vi.end());
dump("sort",vi);
vector<int> vi2(&ari[0],&ari[10]);
stable_sort(vi2.begin(),vi2.end());
dump("stable_sort",vi2);
vector<int> vi3(&ari[0],&ari[10]);
partial_sort(vi3.begin(),vi3.begin()+5,vi3.end());
dump("partial_sort",vi3);
vector<int> vi4(&ari[0],&ari[10]);
nth_element(vi4.begin(),vi4.begin()+5,vi4.end());
dump("nth_element",vi4);
}
lower_bound
#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 ari[]={49,26,19,77,34,52,84,34,92,69};
vector<int> vi(&ari[0],&ari[10]);
vector<int>::iterator it;
dump("원본",vi);
sort(vi.begin(),vi.end());
it=lower_bound(vi.begin(),vi.end(),50);
if (*it == 50) {
cout << "찾는 값이 존재합니다." << endl;
} else {
vi.insert(it,50);
dump("삽입 후",vi);
}
}
728x90
반응형
'프로그래밍 기록 > stl' 카테고리의 다른 글
next_permutation,inner_product,lexicographical,make_heap (0) | 2023.12.09 |
---|---|
merge,minmax,accumulate,adjacent_difference (0) | 2023.12.09 |
generate, remove, remove_copy, unique (0) | 2023.12.09 |
random_shuffle (0) | 2023.12.09 |
fill (0) | 2023.12.09 |
댓글