提供一种将静态数组存入动态数组的方法

前导:此篇用到了STL中的vector容器,以及其中的vec.push_back()操作

           额外用到了vec.pop_back()操作和迭代器

注:下文将用正式语言称静态数组为数组

正文:在考虑一些问题时,先开数组是很方便的,但是在输出要求时,需要额外删除一些元素,比如极值,末尾的空格等,那我们就可以使用动态数组,将数组存入动态数组,运用其中的一些基本操作来进行元素的删除等

下面是一种实现的C++代码(其中数组定义为arr,动态数组定义为vec):

#include <bits/stdc++.h>
#define endl '\n'
#define buff ios::sync_with_stdio(false),cin.tie(nullptr),cout.tie(nullptr);
using namespace std;
typedef long long ll;
typedef pair<ll,ll> pll;
typedef vector<ll> vll;
typedef vector<pair<ll,ll>> vpll;
const ll MAX_INT=0x3f3f3f3f;
const ll MAX_LL=0x3f3f3f3f3f3f3f3f;
const ll CF=2e5+9;
const ll mod=1e9+7;
const int N=1e6+7;
int arr[N];
int main()
{
    ios::sync_with_stdio(0);cin.tie(NULL);cout.tie(NULL);
    vector<int> vec;
    int n;
    cin >>n;
    for (int i=0;i<n;i++)
    {
        cin >>arr[i];
    }
    for (int i=0;i<n;i++)
    {
        vec.push_back(arr[i]);
    }
    vector<int>::iterator itt;
    for (itt=vec.begin();itt!=vec.end();itt++)
    {
        cout <<*itt<<' ';
    }
    cout <<endl;
    vec.pop_back();
    vec.pop_back();
    vector<int>::iterator it;
    for (it=vec.begin();it!=vec.end();it++)
    {
        cout <<*it<<' ';
    }
}

这个程序的输入

输出

文章中后面的迭代器是为了检验存入是否成功,实际应用时不必写在这里,不是模板

删除元素也是额外的操作

下面是模板,直接套用就行(注意变量名的统一):

#include <bits/stdc++.h>
#define endl '\n'
#define buff ios::sync_with_stdio(false),cin.tie(nullptr),cout.tie(nullptr);
using namespace std;
typedef long long ll;
typedef pair<ll,ll> pll;
typedef vector<ll> vll;
typedef vector<pair<ll,ll>> vpll;
const ll MAX_INT=0x3f3f3f3f;
const ll MAX_LL=0x3f3f3f3f3f3f3f3f;
const ll CF=2e5+9;
const ll mod=1e9+7;
const int N=1e6+7;
int arr[N];
int main()
{
    ios::sync_with_stdio(0);cin.tie(NULL);cout.tie(NULL);
    vector<int> vec;
    int n;
    cin >>n;
    for (int i=0;i<n;i++)
    {
        cin >>arr[i];
    }
    for (int i=0;i<n;i++)
    {
        vec.push_back(arr[i]);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值