> 백엔드 개발 > C#.Net 튜토리얼 > C++ 벡터 사용법에 대한 자세한 설명

C++ 벡터 사용법에 대한 자세한 설명

藏色散人
풀어 주다: 2020-03-06 10:55:00
원래의
3442명이 탐색했습니다.

C++ 벡터 사용법에 대한 자세한 설명

C++ 벡터 사용에 대한 자세한 설명

Vector는 C++입니다. STL 중요 멤버, 사용 시 헤더 파일을 포함해야 합니다:

#include<vector>;
로그인 후 복사

1. 벡터 초기화: 5가지 방법이 있으며 예는 다음과 같습니다:

권장 사항: "#🎜🎜 #C++Tutorial

(1) vector a(10); //10개의 정수 요소로 구성된 벡터가 정의됩니다(꺾쇠 괄호는 모든 유효한 데이터 유형이 될 수 있는 요소 유형 이름), 초기 값은 제공되지 않으며 해당 값은 정의되지 않습니다.

(2) vector a(10,1); //10개의 정수 요소로 구성된 벡터가 정의되며, 각 요소의 초기값은 1

# 🎜 🎜# (3)벡터 a(b); //b 벡터를 사용하여 벡터 만들기, 전체 복사 할당

(4)벡터 a(b.begin( ), b.begin+3); //a의 값은 b의 0번째부터 2번째(총 3개) 요소로 정의됩니다.

(5) int b[7]={1 ,2,3 ,4,5,9,8};

      vector a(b,b+7); //배열에서 초기값을 가져옵니다

#🎜🎜 #2. 벡터 객체의 몇 가지 중요한 연산(예: b에서 a까지의 0~2개 요소로 구성된 벡터

(2) a.sign(4,2); //A에는 4개의 요소만 포함되고 각 요소는 2개입니다.

#🎜 🎜# (3)a.back(); //a

(4)a.front() //요소의 첫 번째 요소를 반환

#🎜 🎜# (5) a[i]; //a[i]가 존재하는 경우에만 a의 i번째 요소를 반환합니다. 2013-12-07

( 6) a.clear( ); // a의 요소 지우기

(7) a.empty() // a가 비어 있는지 확인하고, 비어 있으면 true를 반환하고, 비어 있지 않으면 false를 반환합니다. 🎜#

(8)a.pop_back(); //벡터 a의 마지막 요소 삭제

(9)a.erase(a.begin()+1,a .begin( )+3); //a의 첫 번째 요소(0부터 계산)를 삭제합니다. 즉, 삭제된 요소는 a.begin()+1(포함)부터 시작합니다. a.begin()+까지 3 (제외)

(10) a.push_back(5) // a의 마지막 벡터 뒤에 요소를 삽입합니다. 해당 값은 5# 🎜🎜#

(11) a.insert(a.begin()+1,5); //a의 첫 번째 요소 위치에 값 5를 삽입합니다(0번째부터 계산). 예를 들어 a는 1,2,3,4입니다. 요소를 삽입하면 1,5,2,3,4

입니다. (12) a.insert(a.begin()+1,3,5) //3개의 숫자를 삽입합니다. a의 첫 번째 요소(0번째부터 계산)에서 해당 값은 모두 5

(13) a.insert(a.begin()+ 1,b+3,b+ 6); //b는 배열입니다. b가 1,2,3인 경우 a의 첫 번째 요소 위치(0부터 계산) +6)에 b의 5번째 요소(b 제외)에 세 번째 요소를 삽입합니다. ,4,5,9,8, 요소를 삽입하면 1,4,5,9,2,3,4,5,9,8

#🎜 🎜# (14) a.size가 됩니다. (); //a의 요소 수를 반환합니다.

(15) a.capacity() //a가 메모리에 수용할 수 있는 총 요소 수를 반환합니다.

# 🎜🎜# (16) a.resize(10); //a의 기존 요소 수를 10으로 조정하고 더 많은 요소를 삭제하고 더 적은 수의 요소를 채웁니다.

(17) a.resize(10,2); //a의 기존 요소 수를 10으로 조정하고 더 많은 요소를 삭제하고 더 적은 요소를 채웁니다.

#🎜🎜 # (18) 100); //a의 용량을 100으로 확장합니다. 즉, a.capacity()를 테스트할 때 반환 값은 이제 100입니다. 이 작업은 a의 경우에만 필요합니다. 많은 양의 데이터를 추가할 때만 의미가 있습니다. 이렇게 하면 여러 번의 메모리 용량 확장 작업을 피할 수 있기 때문입니다(a의 용량이 부족하면 컴퓨터가 자동으로 확장됩니다. 물론 이로 인해 성능이 저하됩니다)

(19) a .swap(b) / /b는 벡터입니다. a의 요소와 b의 요소를 전체적으로 교환합니다.

(20) a==b; //b는 벡터입니다. 벡터 비교 연산에는 !=, >=,<=,>,<

3. 벡터에 순차적으로 액세스하는 여러 가지 방법의 예는 다음과 같습니다.

(1) 요소 #🎜 추가 🎜#

 vector<int> a;
for(int i=0;i<10;i++)
a.push_back(i);
로그인 후 복사

2를 벡터 a에 추가할 수도 있습니다. 배열에서 요소를 선택하여

int a[6]={1,2,3 ,4,5,6};

Vector b;

for(int i=1;i<=4;i++)

#🎜 🎜#b.push_back(a[ i]);

3 기존 벡터에서 요소를 선택하여 벡터에 추가할 수도 있습니다.

int a[6]={ 1,2,3, 4,5,6};

Vector b;

Vector c(a,a+4);#🎜 🎜#

for(벡터::iterator it=c.begin();it

b.push_back(*it);# 🎜🎜##🎜🎜 #4. 파일에서 요소를 읽어서 벡터에 추가할 수도 있습니다.

ifstream in("data.txt");
vector<int> a;
for(int i; in>>i)
    a.push_back(i);
로그인 후 복사

5. [오해]

vector<int> a;
for(int i=0;i<10;i++)
    a[i]=i;
//这种做法以及类似的做法都是错误的。刚开始我也犯过这种错误,后来发现,下标只能用于获取已存在的元素,而现在的a[i]还是空的对象
로그인 후 복사

(2) 벡터에서 요소 읽기 # 🎜🎜#

1. 아래 첨자

int a[6]={1,2,3,4,5,6};
vector<int> b(a,a+4);
for(int i=0;i<=b.size()-1;i++)
    cout<<b[i]<<" ";
로그인 후 복사

2를 통해 읽습니다.

int a[6]={1,2,3,4,5,6};
vector<int> b(a,a+4);
for(vector<int>::iterator it=b.begin();it!=b.end();it++)
    cout<<*it<<" ";
로그인 후 복사

을 통해 읽습니다. 4. 몇 가지 중요한 알고리즘을 사용할 때 헤더 파일을 포함해야 합니다. it:

#include<algorithm>
로그인 후 복사

(1) sort(a.begin(),a.end()); //a.begin()()을 포함하는 요소) to a.end ()(제외)는 작은 것부터 큰 것 순으로 배열되어 있습니다

(2)reverse(a.begin(),a.end()); // a의 요소를 a.begin()(포함)에서 a.end()(제외)로 반전합니다. 예를 들어, a의 요소는 1,3,2,4입니다. 반전 후에는 4,2,3,1

(3) copy(a.begin(),a.end(), b.begin( )+1); // a의 요소를 a.begin()(포함)에서 a.end()(제외), b.begin()+1 위치에서 b로 복사합니다. (포함) 복사를 시작하고 원래 요소를 덮어씁니다.

(4) find(a.begin(),a.end(),10) //a.begin()(포함)에서 10개를 찾습니다. a.end()의 요소(제외), 존재하는 경우 벡터에서 해당 위치를 반환합니다

위 내용은 C++ 벡터 사용법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
c++
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿