728x90
반응형
generate
#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 fibo()
{
static int i1=1,i2=1;
int t;
t=i1+i2;
i1=i2;
i2=t;
return t;
}
void main()
{
vector<int> vi(10);
generate(vi.begin(),vi.end(),fibo);
dump("vi",vi);
}
remove
#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[]={3,1,4,1,5,9,2,6,5};
vector<int> vi(&ari[0],&ari[sizeof(ari)/sizeof(ari[0])]);
vector<int>::iterator it;
dump("원본",vi);
it=remove(vi.begin(),vi.end(),1);
dump("remove",vi);
vi.erase(it,vi.end());
dump("erase",vi);
}
remove_copy
#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[]={3,1,4,1,5,9,2,6,5};
vector<int> vi(&ari[0],&ari[sizeof(ari)/sizeof(ari[0])]);
vector<int> vi2;
remove_copy(vi.begin(),vi.end(),back_inserter(vi2),1);
dump("vi",vi);
dump("vi2",vi2);
}
unique
#include <iostream>
#include <algorithm>
using namespace std;
void main()
{
char str[]="abcccddefggghi";
char *p;
puts(str);
p=unique(&str[0],&str[strlen(str)]);
*p=0;
puts(str);
}
728x90
반응형
'프로그래밍 기록 > stl' 카테고리의 다른 글
merge,minmax,accumulate,adjacent_difference (0) | 2023.12.09 |
---|---|
replace,partition,transform,sort,lower_bound (0) | 2023.12.09 |
random_shuffle (0) | 2023.12.09 |
fill (0) | 2023.12.09 |
copy (0) | 2023.12.09 |
댓글