用vector的一点感受

输入,特别是对于有要求的输入,我们能采取数组加循环的方法,string加循环的方法,今天,小编学到一下点其他的方法。想赶快记录下来。

这种方法是用vector。

vector 是 C++ 标准库中的一个动态数组容器,可以方便地处理可变大小的序列。在这里,我会解释一下如何使用 vector

首先,你需要包含头文件 <vector>

#include <vector>

接下来,你可以声明一个 vector 对象。例如:

vector<int> sequence1;
vector<int> sequence2;

上述代码声明了两个 vector 对象,sequence1sequence2,它们都是存储整数的动态数组。

要添加元素到 vector,可以使用 push_back 函数。例如:

sequence1.push_back(1);
sequence1.push_back(2);
// ...

上述代码将整数 1 和 2 添加到 sequence1 中。你可以根据需要反复调用 push_back

读取 vector 中的元素可以使用下标操作符 [] 或者使用迭代器。例如:

for (int i = 0; i < sequence1.size(); ++i) {
    cout << sequence1[i] << " ";
}

或者使用迭代器:

for (auto it = sequence1.begin(); it != sequence1.end(); ++it) {
    cout << *it << " ";
}

上述代码输出了 sequence1 中的所有元素。begin() 返回一个指向序列开头的迭代器,end() 返回一个指向序列末尾的迭代器。

请注意,在实际应用中,可以使用 C++11 中引入的范围-based for 循环更简洁:

for (int num : sequence1) {
    cout << num << " ";
}

这样就遍历了 sequence1 中的所有元素。

总体而言,vector 提供了一种方便且高效的方法来管理动态数组。在这个问题中,我们使用 vector 存储每个序列的元素,以便更方便地进行处理。

all in all

来一个例子简单体会一下

#include <iostream>
#include <vector>
using namespace std;

int main() {
    vector<int> sequence1, sequence2;
    int num;
    while (cin >> num && num != -1) {
        sequence1.push_back(num);
    }
    while (cin >> num && num != -1) {
        sequence2.push_back(num);
    }

    int len_seq1 = sequence1.size();
    int len_seq2 = sequence2.size();
    int diff = 0;

    // 寻找第一个不同元素的差值
    int min_len = min(len_seq1, len_seq2);
    for (int i = 0; i < min_len; ++i) {
        if (sequence1[i] != sequence2[i]) {
            diff = sequence1[i] - sequence2[i];
            break;
        }
    }

    // 输出结果
    cout << len_seq1 << endl;
    cout << len_seq2 << endl;
    if (diff != 0) {
        cout << diff << endl;
    } else {
        if (len_seq1 == len_seq2) {
            cout << 0 << endl;
        } else {
            cout << "Not Comparable" << endl;
        }
    }

    return 0;
}

首先呢是题干要求是-1的话就停止;

就这一步的处理,我也是很受启发

while (cin >> num && num != -1) {
        sequence1.push_back(num);
    }
    while (cin >> num && num != -1) {
        sequence2.push_back(num);
    }

再加之vector的动态性,就很舒服;

但是再学习c++中,即会接受到一些简便的东西,同时也要自己尝试去用c去搞一些麻烦事儿,总之,收益良多,继续努力吧.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值