logo

C++에서 벡터 초기화

벡터는 배열처럼 여러 데이터 값을 저장할 수 있지만 기본 데이터 유형은 저장할 수 없고 객체 참조만 저장할 수 있습니다. 객체의 참조를 저장한다는 것은 데이터를 저장하는 대신 데이터가 포함된 객체를 가리킨다는 의미입니다. 배열과 달리 벡터는 크기로 초기화할 필요가 없습니다. 객체 참조 수에 따라 유연하게 조정할 수 있는데, 이는 저장 공간이 컨테이너에 의해 자동으로 처리되기 때문에 가능합니다. 컨테이너는 평생 동안 스토리지를 할당하는 데 사용되는 alloc의 내부 복사본을 유지합니다. 벡터는 반복자를 사용하여 찾고 탐색할 수 있으므로 연속된 저장소에 배치됩니다. Vector에는 Array와 달리 프로그램 충돌을 방지하는 안전 기능도 있습니다. 벡터에는 예비 공간을 제공할 수 있지만 배열에는 제공할 수 없습니다. 배열은 클래스가 아니지만 벡터는 클래스입니다. 벡터에서는 요소를 삭제할 수 있지만 배열에서는 삭제할 수 없습니다.

부모 'Collection 클래스'를 사용하면 벡터가 템플릿 클래스 형태로 전송됩니다. 배열은 특정 속성을 가진 하위 수준 데이터 구조입니다. 벡터에는 함수와 생성자가 있습니다. 인덱스 기반이 아닙니다. 이는 인덱스 기반 데이터 구조인 배열과 반대입니다. 여기서는 첫 번째 요소에 가장 낮은 주소가 부여되고, 마지막 요소에 가장 높은 주소가 부여된다. 벡터는 객체의 삽입과 삭제에 사용되는 반면, 배열은 객체에 자주 액세스하는 데 사용됩니다. 어레이는 메모리를 절약하는 데이터 구조인 반면, 벡터는 스토리지를 관리하고 동적으로 확장하기 위해 훨씬 더 많은 메모리를 사용합니다. 벡터는 요소에 액세스하는 데 더 많은 시간이 걸리지만 배열의 경우에는 그렇지 않습니다.

초기화 방법에는 4가지가 있습니다. C++의 벡터 :

  • 값을 하나씩 입력하면
  • 벡터 클래스의 오버로드된 생성자를 사용하여
  • 배열의 도움으로
  • 다른 초기화된 벡터를 사용하여

값을 하나씩 입력하여 -

벡터의 모든 요소는 벡터 클래스 메소드 'push_back'을 사용하여 하나씩 삽입할 수 있습니다.

연산

 Begin Declare v of vector type. Then we call push_back() function. This is done to insert values into vector v. Then we print 'Vector elements: 
'. ' for (int a: v) print all the elements of variable a.' 

코드 -

 #include #include using namespace std; int main() { vector vec; vec.push_back(1); vec.push_back(2); vec.push_back(3); vec.push_back(4); vec.push_back(5); vec.push_back(6); vec.push_back(7); vec.push_back(8); vec.push_back(9); vec.push_back(101); for (int i = 0; i <vec.size(); i++) { cout << vec[i] ' '; } return 0; < pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/c-tutorial/62/initialize-vector-c.webp" alt="Initialize Vector in C++"> <h3>Using an overloaded constructor -</h3> <p>When a vector has multiple elements with the same values, then we use this method.</p> <p>By using an overloaded constructor of the vector class -</p> <p>This method is mainly used when a vector is filled with multiple elements with the same value.</p> <p> <strong>Algorithm</strong> </p> <pre> Begin First, we initialize a variable say &apos;s&apos;. Then we have to create a vector say &apos;v&apos; with size&apos;s&apos;. Then we initialize vector v1. Then initialize v2 by v1. Then we print the elements. End. </pre> <p> <strong>Code -</strong> </p> <pre> #include #include using namespace std; int main() { int elements = 12; vector vec(elements, 8); for (int i = 0; i <vec.size(); i++) { cout << vec[i] ' 
'; } return 0; < pre> <p> <strong>Output</strong> </p> <pre> 8 8 8 8 8 8 8 8 8 8 8 8 </pre> <h3>By the help of arrays -</h3> <p>We pass an array to the constructor of the vector class. The Array contains the elements which will fill the vector.</p> <p> <strong>Algorithm -</strong> </p> <pre> Begin First, we create a vector say v. Then, we initialize the vector. In the end, print the elements. End. </pre> <p> <strong>Code -</strong> </p> <pre> #include #include using namespace std; int main() { vector vectr{9,8,7,6,5,4,3,2,1,0}; for (int i = 0; i <vectr.size(); i++) { cout << vectr[i] ' 
'; } return 0; < pre> <p> <strong>Output</strong> </p> <pre> 9 8 7 6 5 4 3 2 1 0 </pre> <h3>Using another initialized vector -</h3> <p>Here, we have to pass the begin() and end() iterators of an initialized vector to a vector class constructor. Then we initialize a new vector and fill it with the old vector.</p> <p> <strong>Algorithm -</strong> </p> <pre> Begin First, we have to create a vector v1. Then, we have to initialize vector v1 by an array. Then we initialize vector v2 by v1. We have to print the elements. End. </pre> <p> <strong>Code -</strong> </p> <pre> #include #include using namespace std; int main() { vector vec_1{1,2,3,4,5,6,7,8}; vector vec_2(vec_1.begin(), vec_1.end()); for (int i = 0; i <vec_2.size(); i++) { cout << vec_2[i] ' 
'; } return 0; < pre> <p> <strong>Output</strong> </p> <pre> 1 2 3 4 5 6 7 8 </pre> <hr></vec_2.size();></pre></vectr.size();></pre></vec.size();></pre></vec.size();>

코드 -

 #include #include using namespace std; int main() { int elements = 12; vector vec(elements, 8); for (int i = 0; i <vec.size(); i++) { cout << vec[i] \' 
\'; } return 0; < pre> <p> <strong>Output</strong> </p> <pre> 8 8 8 8 8 8 8 8 8 8 8 8 </pre> <h3>By the help of arrays -</h3> <p>We pass an array to the constructor of the vector class. The Array contains the elements which will fill the vector.</p> <p> <strong>Algorithm -</strong> </p> <pre> Begin First, we create a vector say v. Then, we initialize the vector. In the end, print the elements. End. </pre> <p> <strong>Code -</strong> </p> <pre> #include #include using namespace std; int main() { vector vectr{9,8,7,6,5,4,3,2,1,0}; for (int i = 0; i <vectr.size(); i++) { cout << vectr[i] \' 
\'; } return 0; < pre> <p> <strong>Output</strong> </p> <pre> 9 8 7 6 5 4 3 2 1 0 </pre> <h3>Using another initialized vector -</h3> <p>Here, we have to pass the begin() and end() iterators of an initialized vector to a vector class constructor. Then we initialize a new vector and fill it with the old vector.</p> <p> <strong>Algorithm -</strong> </p> <pre> Begin First, we have to create a vector v1. Then, we have to initialize vector v1 by an array. Then we initialize vector v2 by v1. We have to print the elements. End. </pre> <p> <strong>Code -</strong> </p> <pre> #include #include using namespace std; int main() { vector vec_1{1,2,3,4,5,6,7,8}; vector vec_2(vec_1.begin(), vec_1.end()); for (int i = 0; i <vec_2.size(); i++) { cout << vec_2[i] \' 
\'; } return 0; < pre> <p> <strong>Output</strong> </p> <pre> 1 2 3 4 5 6 7 8 </pre> <hr></vec_2.size();></pre></vectr.size();></pre></vec.size();>

배열의 도움으로 -

벡터 클래스의 생성자에 배열을 전달합니다. 배열에는 벡터를 채울 요소가 포함되어 있습니다.

알고리즘 -

 Begin First, we create a vector say v. Then, we initialize the vector. In the end, print the elements. End. 

코드 -

 #include #include using namespace std; int main() { vector vectr{9,8,7,6,5,4,3,2,1,0}; for (int i = 0; i <vectr.size(); i++) { cout << vectr[i] \' 
\'; } return 0; < pre> <p> <strong>Output</strong> </p> <pre> 9 8 7 6 5 4 3 2 1 0 </pre> <h3>Using another initialized vector -</h3> <p>Here, we have to pass the begin() and end() iterators of an initialized vector to a vector class constructor. Then we initialize a new vector and fill it with the old vector.</p> <p> <strong>Algorithm -</strong> </p> <pre> Begin First, we have to create a vector v1. Then, we have to initialize vector v1 by an array. Then we initialize vector v2 by v1. We have to print the elements. End. </pre> <p> <strong>Code -</strong> </p> <pre> #include #include using namespace std; int main() { vector vec_1{1,2,3,4,5,6,7,8}; vector vec_2(vec_1.begin(), vec_1.end()); for (int i = 0; i <vec_2.size(); i++) { cout << vec_2[i] \' 
\'; } return 0; < pre> <p> <strong>Output</strong> </p> <pre> 1 2 3 4 5 6 7 8 </pre> <hr></vec_2.size();></pre></vectr.size();>

다른 초기화된 벡터 사용 -

여기서는 초기화된 벡터의 start() 및 end() 반복자를 벡터 클래스 생성자에 전달해야 합니다. 그런 다음 새 벡터를 초기화하고 이를 이전 벡터로 채웁니다.

알고리즘 -

 Begin First, we have to create a vector v1. Then, we have to initialize vector v1 by an array. Then we initialize vector v2 by v1. We have to print the elements. End. 

코드 -

 #include #include using namespace std; int main() { vector vec_1{1,2,3,4,5,6,7,8}; vector vec_2(vec_1.begin(), vec_1.end()); for (int i = 0; i <vec_2.size(); i++) { cout << vec_2[i] \\' 
\\'; } return 0; < pre> <p> <strong>Output</strong> </p> <pre> 1 2 3 4 5 6 7 8 </pre> <hr></vec_2.size();>