list 와 vector 는 어떤 차이 가 있 습 니까?
list 와 vector 위의 이러한 차이 로 인해 list: iterator 와 vector:: iterator 도 약간 다르다.아래 의 예 를 보십시오.
#include <vector>
#include <list>
using namespace std;
int main( void )
{
vector<int> v;
list<int> l;
for (int i=0; i<8; i++) // v l
{
v.push_back(i);
l.push_back(i);
}
cout << "v[2] = " << v[2] << endl;
//cout << "l[2] = " << l[2] << endl; // ,list []
cout << (v.begin() < v.end()) << endl;
//cout << (l.begin() < l.end()) << endl; // ,list::iterator < >
cout << *(v.begin() + 1) << endl;
vector<int>::iterator itv = v.begin();
list<int>::iterator itl = l.begin();
itv = itv + 2;
//itl = itl + 2; // ,list::iterator +
itl++;
itl++; //list::iterator ++, ++ 。
cout << *itv << endl;
cout << *itl << endl;
return 0;
vector 는 연속 적 인 메모리 공간 을 가지 고 있 기 때문에 무 작위 접근 을 지원 할 수 있 습 니 다. 따라서 vector < int >: iterator 는 "+", "+ =", "<" 등 조작 자 를 지원 합 니 다.한편, list 의 메모리 공간 은 연속 되 지 않 을 수 있 습 니 다. 무 작위 접근 을 지원 하지 않 기 때문에 list < int >: iterator 는 "+", "+ =", "<" 등 연산 자 를 지원 하지 않 기 때문에 코드 20, 26 줄 에 컴 파일 오류 가 발생 할 수 있 습 니 다."+" 를 사용 하여 교체 할 수 있 습 니 다. 예 를 들 어 코드 27 줄, itl + 를 두 번 사용 하여 itl 을 이동 할 수 있 습 니 다.그리고 list 도 [] 연산 자 를 지원 하지 않 기 때문에 코드 18 줄 에 컴 파일 오류 가 발생 했 습 니 다.한 마디 로 하면 삽입 과 삭제 의 효율 에 신경 쓰 지 않 고 효율 적 인 액세스 가 필요 하 다 면 vector 를 사용 합 니 다.많은 삽입 과 삭제 가 필요 하 다 면 즉시 액세스 에 관심 이 없 으 면 list 를 사용 해 야 합 니 다.정 답: vector 는 연속 적 인 메모리 공간 을 가지 고 있 기 때문에 무 작위 접근 을 지원 합 니 다. 삽입 과 삭제 의 효율 에 신경 쓰 지 않 고 효율 적 인 접근 이 필요 하 다 면 vector 를 사용 하 십시오.
list 는 연속 되 지 않 는 메모리 공간 을 가지 고 있 기 때문에 무 작위 접근 을 지원 합 니 다. 많은 삽입 과 삭제 가 필요 하고 즉시 접근 에 관심 이 없 으 면 list 를 사용 해 야 합 니 다.
돌리다http://genwoxuevc.blog.51cto.com/1852984/503337
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.