A vector in C++ is an object that manages a block of memory
a collection of values
A vector has a name, and we may access the values it contains via their position within the block of memory managed by the vector A vector stores a sequence of values, and the values must all be of the same type A collection of values all of the same type is said to be homogeneous.
Step.1: Header including #include
Step.2: Namespace definition using namespace std; // or using std::vector statement
Step.3: Make your own vector variable vector
vec_a; // vector with name only vector
vec_b(10); // vector with initial size vector
vec_c(10, 8); // vector with initial size and initial value vector
vec_d{ 10, 20, 30, 40 }; // vector with specific values
#include <iostream>
#include <vector>
using namespace std;
// 반드시 call by reference로 주소값으로 보내어야한다
// vector 전체를 복사하지 않으므로 메모리 오버를 방지한다.
// 그대신 값이 안바뀌도록 const걸어둘것
void print(const vector<int>& v) {
for (unsigned i = 0; i < v.size(); i++) //데이터타입unsigned,
cout << v[i] << '\t'; // 벡터안에 element의 크기를 모르더라도 사용가능하다
cout << endl;
}
int main() {
vector<int> vec_a(5); //{0,0,0,0,0}
vector<int> vec_b(5, 8); //{8,8,8,8,8}
vector<int> vec{ 10,20,30,40 }; //{10,20,30,40}
// 0 1 2 3
//for (int i = 0; i <= 3; i++)
vec.at(0) = 1000;
vec[1] = 2000;
print(vec);
return 0;
}
1000 2000 30 40
vec.push_back(50); // 맨 뒤에 element를 추가
vec.pop_back(); // 맨 뒤에 element를 제거할 때
Simplified For grammar
for(변수 : 배열)
vec 값들을 하나씩 'elem' 변수에 대입
반복문이 돌 때마다 'elem' 에 들어 있는 값이 변하게 된다.
처음에는 1, 2, 3 순서대로부터 vec 끝까지 하나씩 'elem' 에 대입된다.
// int& elem=vec[0] -> body ->
// int& elem=vec[1]
for (int& elem : vec)
cin >> elem;
// int elem = vec[0] -> body
// int elem = vec[1] -> body
for (int elem : vec)
cout << elem << '\t';
cout << endl;
return 0;
}
void get_data(int& low, int& high) {
cout << "Enter low and high number: ";
cin >> low >> high;
}
bool is_prime(int n) {
if (n < 2)
return false;
for (int i = 2; i < n; i++)
if (n % 1 == 0)
return false;
return true;
}
vector <int> primes(int low, int high) {
vector<int> vec;
for (int i = low; i <= high; i++)
if (is_prime(i))
vec.push_back(i);
return vec;
}
void print(const vector<int>& vec) { // 객체를 함수인자로 보낼때, const는 왠만하면써줘라
for (int elem : vec)
cout << elem << '\t';
cout << endl;
}
int main() {
int low, high;
get_data(low, high);
vector<int> vec = primes(low, high);
print(vec);
return 0;
}
해당 자료는 경희대학교 소프트웨어융합학과 배성호교수님 수업내용을 참조하였습니다.
'Code > C++' 카테고리의 다른 글
[C++] (example) Vector (0) | 2019.10.17 |
---|---|
[C++] (example) & operator / pointer / pass by address/ function pointer (0) | 2019.10.17 |
[C++] & operator / pointer / pass by address/ function pointer (0) | 2019.10.09 |
[C++] Local & Global Variables/ Pass by reference & value/ Recursion (0) | 2019.09.29 |
[C++] Function/ cmath library/ Default argument (0) | 2019.09.28 |