欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Vector C++自制vector

程序员文章站 2022-03-23 14:53:45
...

Vector 动态数组

自动管理分配数组内存

数组名 v

1.插入元素 v.push_back()

2.弹出最后一项 v.pop_back()

3.求数组长度 v.size()

4.指向数组第一项的地址 v.begin()

​ |

⚠️这里是2个指针

​ |

5.指向数组最后一项的地址 v.end()

6.数组第一项的值 v.front()

7.数组最后一项的值 v.back()

8.判断数组是否为空 v.empty()

9.定义一个动态数组 vectorv

#include<iostream>
#include<vector>					//动态数组头文件
#include<algorithm>
using namespace std;
bool cmp(int a,int b){
    return a>b;
}
int main(){
    vector<int>v;
    for(int i=0;i<=10;i++) v.push_back(i);	//输入元素
    cout<<v.size()<<endl;		//数组长度
    cout<<v.front()<<endl;	//数组第一项
  	cout<<v.back()<<endl;		//数组最后一项
  	cout<<*v.begin()<<endl;	//数组第一项
    cout<<*v.end()<<endl;		//数组最后一项
  	sort(v.begin(),v.end(),cmp);		//排序
  	while(!v.empty()){
        cout<<v.back()<<endl;
        v.pop_back();
    }
  	return 0;
}

Make a Vector

#include<iostream>
using namespace std;
int a[1000];
int s=0;
void push_back(int tmp){
    a[s] = tmp;
    s++;
}
int size(){
    return s;
}

int j = size()-1;

int front(){
    return a[0];
}

int back(){
    return a[s-1];
}

int* begin(){
    int* c;
    c=&a[0];
    return c;
}

int* end(){
    int* b;
    b=&a[size()-1];
    return b;
}

bool empty(){
    for (int i = 1; i < 5; i++)
        if (a[i] != NULL)
            return false;
    return true;
}

void pop_back(){
    a[j] = NULL;
}

int main() {
    for (int i = 1; i < 5; i++) push_back(i);
    cout << size() << endl;
    cout << front() << endl;
    cout << *begin() << endl;
    cout << back() <<endl;
    cout << *end() <<endl;
    while(!empty()) {
        if (a[j] != NULL)
            cout << a[j] << ' ';
        j--;
        pop_back();
    }
    return 0;
}
相关标签: 数据结构