今天发现了一个有用的容器,那就是向量,用bool类型的向量简直不要太方便,尤其是对于二极管问题,比如B2094
然后用向量模拟栈也比较方便

点击查看代码
#include <iostream>
#include <vector>
using namespace std;

class Stack {
private:
    vector<int> elements;

public:
    // 将元素压入栈顶
    void push(int element) {
        elements.push_back(element);
    }

    // 弹出栈顶元素
    void pop() {
        if (!elements.empty()) {
            elements.pop_back();
        } else {
            cout << "Stack is empty. Cannot pop." << endl;
        }
    }

    // 获取栈顶元素
    int top() {
        if (!elements.empty()) {
            return elements.back();
        } else {
            cout << "Stack is empty. No top element." << endl;
            return -1; // 返回一个默认值
        }
    }

    // 检查栈是否为空
    bool isEmpty() {
        return elements.empty();
    }

    // 获取栈中元素的数量
    int size() {
        return elements.size();
    }
};

int main() {
    Stack myStack;

    // 向栈中压入一些元素
    myStack.push(10);
    myStack.push(20);
    myStack.push(30);

    // 输出栈顶元素
    cout << "Top element: " << myStack.top() << endl;

    // 弹出栈顶元素
    myStack.pop();

    // 输出栈中元素数量
    cout << "Stack size: " << myStack.size() << endl;

    // 检查栈是否为空
    cout << "Is stack empty? " << (myStack.isEmpty() ? "Yes" : "No") << endl;

    return 0;
}

向量:
求和:
1.遍历求和
based-for循环(foreach循环)
语法形式:for(element-declaration:array){balabalabala}
element-declaration是定义的一个新的临时变量,可以是int num这种,然后array是一个数组或者是容器,在循环中,会遍历array中的每一个元素,将array的每一个值赋给num(以element-declaration是int num为例),至于赋给它之后干什么,就需要{}里面的内容了

2.函数求和
库头是#include
累加结果类型(比如说是int)accumulate(迭代器类型 起始位置,迭代器类型 终止位置,初始积累值);
vectornum;
int accumulate(num.begin(),num.end(),0);

posted on 2024-05-09 22:44  fafrkvit  阅读(1)  评论(0编辑  收藏  举报