c++STL (1) vector container

Vector is translated into a vector, also known as a variable-length array 1. The definition of vector

vector<typename> name;

vector<int> vi;
vector<double> vi;
vector<char> vi;
vector<node> vi;//node可以是结构体

push_back(x) adds an element x to the end of the element of vi

for(int i=1;i<=5;i++){
    
    
		vi.push_back(i);
} 

vi.size() returns the number of elements in the vector

cout<<vi.size()<<endl; //5

empty() Determine whether it is empty

 cout<<vi.empty()<<endl;//0 表示不为空

back() returns the last element
in the vector front() returns the first element in the vector

 //back()  返回vector里的最后一个元素 
	 //1 2 3 4 5
	 cout<<vi.back()<<endl; //5  
	 //front()  返回vector里的第一个元素 
	 cout<<vi.front()<<endl;//1  

traversal of vector

//1. 通过下标方式 
	for(int i=0;i<vi.size();i++){
    
    //1 2 3 4 5
		cout<<vi[i]<<" ";
	} 
	cout<<endl;
//2.通过迭代器的方法  vector<typename>::iterator it可以把它看做类似于指针的东西
//vi[i]和(vi.begin()+i)是等价的
//vi.begin()和vi.end()是左开右闭的end()表示的是尾元素的下一个 
//迭代器支持++,--的操作 	
//1.
vector<int>::iterator it;
	for(it=vi.begin();it!=vi.end();it++){
    
    
		  cout<<*it<<" "; 
	} 
	cout<<endl;
	
//2.	
	 it=vi.begin();
	for(int i=0;i<vi.size();i++){
    
    
		cout<<*(it+i)<<" ";
	} 
	cout<<endl;
	
//3.	
    for(vector<int>::iterator it=vi.begin();it!=vi.end();it++){
    
    
    	 cout<<*it<<" ";
	}	

pop_back() delete the tail element

	vi.pop_back();
for(vector<int>::iterator it=vi.begin();it!=vi.end();it++){
    
    
   cout<<*it<<" ";//1 2 3 4
	}

clear() clear the element

 vi.clear();
cout<<vi.size()<<endl;//0

insert() inserts an element x into any iterator it of the vector

	vi.insert(vi.begin(),-1);//在vi的开头加入-1 
	 for(vector<int>::iterator it=vi.begin();it!=vi.end();it++){
    
    
    	 cout<<*it<<" ";//-1 1 2 3 4
	}
	cout<<endl;
	
	vi.insert(vi.begin()+vi.size(),5);//在vi的末尾添加5 
	 for(vector<int>::iterator it=vi.begin();it!=vi.end();it++){
    
    
    	 cout<<*it<<" ";//-1 1 2 3 4 5
	}

erase() delete elements

//erase() 有两种用法一种是删除单个元素另一种是删除一个区间的所有元素
	 //-1 1 2 3 4 5
	 //删除一个元素
	 vi.erase(vi.begin()+4);//删除4 
	  for(vector<int>::iterator it=vi.begin();it!=vi.end();it++){
    
    
    	 cout<<*it<<" ";//-1 1 2 3 5
	}
	cout<<endl;
	//删除整个区间
	vi.erase(vi.begin(),vi.begin()+3);//左闭右开不包括右边的那个值 
	for(vector<int>::iterator it=vi.begin();it!=vi.end();it++){
    
    
    	 cout<<*it<<" ";//3,5 
	}

Application of functions in vector and algorithm

//reverse() 倒置 是在algorithm里面的函数 
	//12345
	reverse(vi.begin(),vi.end());
		for(vector<int>::iterator it=vi.begin();it!=vi.end();it++){
    
    
    	 cout<<*it<<" ";//5,4,3,2,1
	}
	cout<<endl;
	
	//sort()排序默认是从小到大排 还可以任意排序后面讲 
	sort(vi.begin(),vi.end());
	 	for(vector<int>::iterator it=vi.begin();it!=vi.end();it++){
    
    
    	 cout<<*it<<" ";//1,2,3,4,5
	}

Guess you like

Origin blog.csdn.net/qq_44866153/article/details/108973733