티스토리 뷰

vector의 특징

1. 중간의 데이터 삽입, 삭제가 어렵다(느리다).

2. 데이터를 순차적으로 저장한다. 


※데이터를 중간에 삽입, 삭제를 많이 해야할경우 vector 보단 list가 더 용이합니다.



std::vector.at()

특정원소에 접근한다.

 std::vector.front()

첫번째 원소에 접근한다. 

 std::vector.back()

마지막원소에 접근한다. 

 std::vector.empty()

현재 컨테이너가 비었는지 확인한다. 

 std::vector.size()

원소의 갯수를 반환한다. 

std::vector.clear()

내용물을 모두 지운다. 

std::vector.insert()

 원소를 삽입한다.

 std::vector.erase()

 원소를 지운다.

 std::vector.push_back()

 끝에 원소를 삽입한다. 

 std::vector.pop_back()

 마지막 원소를 제거한다.


std::vector.resize()

원소의 총 갯수를 바꾼다. 

 std::vector.swap()

원소들을 서로 바꾼다. 





예제


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <vector>
#include <iostream>
 
int main()
{
    std::vector<int> t_vec;
 
    for(int i = 0; i < 10; i ++)
    {
        t_vec.push_back(i);
    }
 
    for(std::vector<int>::iterator v = t_vec.begin(); v != t_vec.end(); v++)
    {
        std::cout << *<< std::endl;
    }
 
    system("pause");
}
cs


여기서 for문이 매우 불편하게 느껴질수있습니다.

그럴땐 C++11에 나온ranged for를 사용해서


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <vector>
#include <iostream>
 
int main()
{
    std::vector<int> t_vec;
 
    for(int i = 0; i < 10; i ++)
    {
        t_vec.push_back(i);
    }
 
    for(auto V : t_vec)
    {
        std::cout << V << std::endl;
    }
 
    system("pause");
}
cs


이렇게 바꿀수있습니다.



※코딩지적및비판은 저에게 많은 도움이됩니다.

※코딩질문 또한 많은 도움이 됩니다.


'프로그래밍 > C++' 카테고리의 다른 글

[C++] 몬티홀 딜레마 문제  (0) 2017.10.23
[C++]new Class;와 new Class();의 차이  (0) 2017.06.27
[C++]STL 프로그래밍 std::list  (0) 2017.03.06
[C++] 연산자 오버로딩(Operator)  (0) 2017.03.05
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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
글 보관함