반응형
erase
erase(iterator start, iterator end)
- start가 가리키는 값 삭제
- start ~ end - 1 까지 삭제
cout << "v1 =";
for (Iter = v1.begin(); Iter != v1.end(); Iter++)
cout << " " << *Iter;
cout << endl;
//10 20 30 40 50
v1.erase(v1.begin());
cout << "v1 =";
for (Iter = v1.begin(); Iter != v1.end(); Iter++)
cout << " " << *Iter;
cout << endl;
// 20 30 40 50
v1.erase(v1.begin() + 1, v1.begin() + 3);
cout << "v1 =";
for (Iter = v1.begin(); Iter != v1.end(); Iter++)
cout << " " << *Iter;
cout << endl;
// 20 50
insert
1) insert(iterator it, element e)
- it 위치에 e 삽입
2) insert( iterator it, size_type count, const Type& value)
- it 위치에 value count개 삽입
3) insert( iterator it, InputIterator first, InputIterator last);
- it 위치에 first부터 last까지 삽입
vector <int> v1;
vector <int>::iterator Iter;
v1.push_back(10);
v1.push_back(20);
v1.push_back(30);
cout << "v1 =";
for (Iter = v1.begin(); Iter != v1.end(); Iter++)
cout << " " << *Iter;
cout << endl;
// 10 20 30
// v1[1]에 40 추가
v1.insert(v1.begin() + 1, 40);
cout << "v1 =";
for (Iter = v1.begin(); Iter != v1.end(); Iter++)
cout << " " << *Iter;
cout << endl;
// 10 40 20 30
// v[2] ~ v[5]에 50 추가
v1.insert(v1.begin() + 2, 4, 50);
cout << "v1 =";
for (Iter = v1.begin(); Iter != v1.end(); Iter++)
cout << " " << *Iter;
cout << endl;
// 10 40 50 50 50 50 20 30
// 백터 복사
const auto v2 = v1;
// v1[1]에 v2[1] ~ v2[4] 추가
v1.insert(v1.begin() + 1, v2.begin() + 1, v2.begin() + 4);
cout << "v1 =";
for (Iter = v1.begin(); Iter != v1.end(); Iter++)
cout << " " << *Iter;
cout << endl;
// 10 40 50 50 50 40 50 50 50 50 20 30
assign
void assign(size_type count, const Type& value);
- count만큼 value 추가 (3, 7) → 7 7 7
void assign(InputIterator first, InputIterator last);
- first부터 last까지 복사추가
vector <int> v1, v2, v3;
vector <int>::iterator Iter;
v1.push_back(10);
v1.push_back(20);
v1.push_back(30);
v1.push_back(40);
v1.push_back(50);
cout << "v1 =";
for (Iter = v1.begin(); Iter != v1.end(); Iter++) cout << " " << *Iter;
cout << endl;
// 10 20 30 40 50
cout << "v2 =";
for (Iter = v2.begin(); Iter != v2.end(); Iter++) cout << " " << *Iter;
cout << endl;
//
cout << "* * * assign * * *" << endl;
v2.assign(v1.begin(), v1.end() - 3);
cout << "v1 =";
for (Iter = v1.begin(); Iter != v1.end(); Iter++) cout << " " << *Iter;
cout << endl;
// 10 20 30 40 50
cout << "v2 =";
for (Iter = v2.begin(); Iter != v2.end(); Iter++) cout << " " << *Iter;
cout << endl;
// 10 20
cout << "* * * assign 2 * * *" << endl;
v3.assign(3, 7);
cout << "v3 =";
for (Iter = v3.begin(); Iter != v3.end(); Iter++) cout << " " << *Iter;
cout << endl;
// 7 7 7
int k = v1.at(3);
cout << "k : " << k << endl;
// 40
v1.at(2) = 100;
cout << "v1.at(2) : " << v1.at(2) << endl;
// 100
cout << "v1 =";
for (Iter = v1.begin(); Iter != v1.end(); Iter++) cout << " " << *Iter;
// 10 20 100 40 50
반응형
'Study > C++' 카테고리의 다른 글
[C++] file IO (0) | 2021.08.21 |
---|
댓글