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 |
// STL: vector
#include <iostream>
#include <vector>
#include <fstream>
#include <iterator>
using namespace std;
int main()
{
vector <int> v(100);
for (int i = 0; i < 100; i++)
v[i] = i;
for (vector<int>::iterator p = v.begin(); p != v.end(); p++)
cout << *p << "\t";
cout << endl;
// C++ 11 : auto
for(auto p=v.begin(); p!=v.end(); p++)
cout << *p << "\t";
cout << endl;
// vector methods
// size, resize
// vector<T> v;
// vector<T> v(n);
// vector<T>v(n, value);
int how_many;
cout << "How many ints in data? ";
cin >> how_many;
cout << "The contents of data : ";
vector<int> data(how_many);
for (vector<int>::iterator p = data.begin(); p != data.end(); p++)
cin >> *p;
for (auto p = data.begin(); p != data.end(); p++)
cout << *p << "\t";
cout << endl;
// use with a file
ifstream data_file("data.txt");
istream_iterator<int> start(data_file), end;
vector<int> fdata(start, end);
int sum = 0;
for (vector<int>::iterator p = fdata.begin(); p != fdata.end(); p++) {
cout << *p << "\t";
sum += *p;
}
// 이 코드는 동작 안함
//for (auto p = start; p != end; p++) {
// cout << *p << "\t";
// sum += *p;
cout << "\nsum = " << sum << endl;
cout << "average = " << 1.0*sum / fdata.size() << endl;
} |
cs |
vector는 동적으로 할당하는 배열과 같이 사용되며, begin(), end(), size() 등 여러가지 method 들을 이용할 수 있다. 위의 예제에서 맨 아래 auto p는 동작하지 않는다. 왜 그런지 공부해야 함.
beeeye dmu
'C++' 카테고리의 다른 글
C++ 입출력시스템 정리 (0) | 2016.07.05 |
---|---|
STL vector와 sort (0) | 2016.07.05 |
enum 과 연산자 중복의 예 (0) | 2016.07.04 |
Template를 사용한 swap 함수 (0) | 2016.07.04 |
C++ 출력 포맷 (0) | 2016.07.02 |