SMALL
vector 사용법 정리
문제 풀면서 필요한 부분과 함수 사용 정리
Assign
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 | #include <iostream> #include <vector> using namespace std; int main(){ std::vector<int> first; std::vector<int> second; std::vector<int> third; /* * assign 할당 방법 3가지 */ //assign(num, value) first.assign (7,100); // 7 ints with a value of 100 std::vector<int>::iterator it; it=first.begin()+1; //assign(begin_iterator, end_iterator) second.assign (it,first.end()-1); // the 5 central values of first int myints[] = {1776,7,4}; //assign(begin_array, end_array) third.assign (myints,myints+3); // assigning from array. std::cout << "Size of first: " << int (first.size()) << '\n'; std::cout << "Size of second: " << int (second.size()) << '\n'; std::cout << "Size of third: " << int (third.size()) << '\n'; return 0; } | cs |
vector.back()
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 | #include <iostream> #include <vector> using namespace std; int main(){ std::vector<int> myvector; /* * back은 맨 뒤의 값을 가져옴. 값을 가져옴! */ myvector.push_back(5); while (myvector.back() != 0) { myvector.push_back ( myvector.back() -1 ); } /* * 5 5 5 5 5 * 4 4 4 4 4 * 3 3 3 3 * 2 2 2 * 1 1 * 0 */ std::cout << "myvector contains:"; for (unsigned i=0; i<myvector.size() ; i++) std::cout << ' ' << myvector[i]; std::cout << '\n'; return 0; } | cs |
vector.begin, vector.end
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 | #include <iostream> #include <vector> using namespace std; int main(){ std::vector<int> myvector; /* * 값을 집어 넣음 */ for (int i=1; i<=5; i++) myvector.push_back(i); std::cout << "myvector contains:"; /* * begin은 시작 점[위치], end는 마지막 점[위치] * 1[end] 2 3 4 5 dummy[end] */ for (std::vector<int>::iterator it = myvector.begin() ; it != myvector.end(); it++) std::cout << ' ' << *it; std::cout << '\n'; return 0; return 0; } | cs |
vector.at
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #include <iostream> #include <vector> int main () { std::vector<int> myvector (10); // 10 zero-initialized ints // container의 n 위치에 있는 값에 대한 참조[reference]를 반환 //[Returns a reference to the element at position n in the vector.] for (unsigned i=0; i<myvector.size(); i++) myvector.at(i)=i; std::cout << "myvector contains:"; for (unsigned i=0; i<myvector.size(); i++) std::cout << ' ' << myvector.at(i); std::cout << '\n'; return 0; } | cs |
vector.erase
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 | #include <iostream> #include <vector> using namespace std; int main () { /* * iterator erase (iterator position); * iterator erase (iterator first, iterator last); */ std::vector<int> myvector; for (int i=1; i<=10; i++) myvector.push_back(i); // erase the 6th element // 하나의 값 지우기 myvector.erase (myvector.begin()+5); // erase the first 3 elements: // 범위를 지우기 myvector.erase (myvector.begin(),myvector.begin()+3); std::cout << "myvector contains:"; for (unsigned i=0; i<myvector.size(); ++i) std::cout << ' ' << myvector[i]; std::cout << '\n'; return 0; } | cs |
vector.push_back, pop_back, empty
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 | #include <iostream> #include <vector> using namespace std; #include <iostream> #include <vector> int main () { /* * 100 100 100 --- * 200 200 * 300 * * if empty, vector.empty() retunr value is one */ std::vector<int> myvector; int sum (0); myvector.push_back (100); myvector.push_back (200); myvector.push_back (300); while (!myvector.empty()) { sum+=myvector.back(); myvector.pop_back(); } std::cout << "The elements of myvector add up to " << sum << '\n'; return 0; } | cs |
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 42 43 44 45 46 | #include <iostream> #include <vector> int main () { /* * A -> B -> C * B -> D -> A * C -> A -> D * D -> B -> C */ vector<vector<char>> arry(4, vector<char>(4,'\x00')); vector<vector<char>>::iterator it= arry.begin(); for(std::vector<char>::size_type i = 0; i < arry.size(); i ++){ *(*(it+i)).begin() = 'A' + i; //*(*(it+i)).begin()) = 'A' + i; } //A->B->C (*it).at(1) = 'B'; (*it).at(2) = 'C'; // B -> D -> A (*(it+1)).at(1) = 'D'; (*(it+1)).at(2) = 'A'; //C -> A -> D (*(it+2)).at(1) = 'A'; (*(it+2)).at(2) = 'D'; //D -> B -> C (*(it+3)).at(1) = 'B'; (*(it+3)).at(2) = 'C'; } | cs |
Graph Vector
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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | #include <iostream> #include <vector> using namespace std; #include <iostream> #include <vector> int main () { /* * A -> B -> C * B -> D -> A * C -> A -> D * D -> B -> C */ vector<vector<char>> arry(4); vector<vector<char>>::iterator it= arry.begin(); (*it).push_back('A'); (*it).push_back('B'); (*it).push_back('C'); (*(it+1)).push_back('B'); (*(it+1)).push_back('D'); (*(it+1)).push_back('A'); (*(it+2)).push_back('C'); (*(it+2)).push_back('A'); (*(it+2)).push_back('D'); /**/ (*(it+3)).push_back('D'); (*(it+3)).push_back('B'); (*(it+3)).push_back('C'); for(std::vector<int>::size_type i = 0 ; i < arry.size(); i ++){ vector<char> tmp = (*(arry.begin()+i)); for(std::vector<char>::iterator it = tmp.begin(); it != tmp.end();it++){ cout << *it << endl; } cout << "\n" << endl; } } | cs |
출처 : http://www.cplusplus.com/reference/vector/vector/pop_back/
LIST
'기타[etc] > 알고리즘' 카테고리의 다른 글
백준 - [스택] 1874 (0) | 2017.07.28 |
---|---|
조합 알고리즘 (0) | 2017.07.26 |
[알고리즘] Helloworld - 소수 찾기 (0) | 2017.07.17 |
[알고리즘] Helloworld - 이상한 문자만들기 (0) | 2017.07.04 |
[알고리즘] Helloworld - 다음 큰수 (0) | 2017.07.03 |