vector basic 설명
vector의 random access complexity -> constant O(1)
insertion or removal of elements at the end - constant O(1)
insertion or removal of elements - linear in the distance to the end of the vector O(n)
| 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 62 63 64 65 66 67 68 69 70 | #include <iostream> #include <vector> /// Dynamic size class Cat { public:     explicit Cat(int age) : mAge{ age } {};     void speak() const     {         std::cout << "meow~" << mAge << std::endl;     } private:     int mAge; }; int main() {     // Dynamic Size by array     // 그러나 delete를 잊어버리면 메모리 leak 발생     // 이를 방지하기 위한 것이 vector임     int* numsPtr = new int[5];     for (int i = 0; i < 5; i++)     {         numsPtr[i] = i;     };     delete numsPtr;     std::vector<int> nums(5);     //std::vector<int> nums{0,1,2,3,4}; 도 가능     for (int i = 0; i < 5; i++)     {         nums[i] = i;     }     std::cout << "nums.size() : " <<  nums.size() << std::endl;     nums.emplace_back(5);     std::cout << "nums.size() : " <<  nums.size() << std::endl;     nums.pop_back();     std::cout << "nums.size() : " <<  nums.size() << std::endl;     //vector iterator     for (std::size_t idx = 0; idx < nums.size(); idx++)     {         std::cout << nums[idx] << std::endl;     }     for (auto itr = nums.begin(); itr != nums.end(); itr++)     {         std::cout << *itr << std::endl;     }     // vector를 iterate 하기 가장 좋은 방법     for (const int& num : nums)     {         std::cout << num << std::endl;     }     // Class 넣기     std::vector<Cat> cats;     cats.emplace_back(Cat(1));     cats.emplace_back(Cat(2));     cats.emplace_back(Cat(3));     cats.emplace_back(Cat(4));     for (const auto& cat : cats)     {         cat.speak();     } } | 
'C' 카테고리의 다른 글
| c++ vector reserve를 통한 capacity 확보->속도향상 (0) | 2021.06.25 | 
|---|---|
| vector time complexity, emplace_back 정리 (0) | 2021.06.25 | 
| c++ std::function 사용법 (0) | 2021.06.24 | 
| c++ lambda + stl(filter, sort, remove_if, reduce, vector) (0) | 2021.06.24 | 
| c++ lambda expression, capture =, & (0) | 2021.06.23 |