c++vector怎么入栈
时间: 2023-11-17 20:02:00 浏览: 74
C++中的vector是一种动态数组,可以通过push_back()方法将元素入栈。具体操作如下:
```cpp
vector<int> vecInt; //定义一个int类型的vector
vecInt.push_back(1); //将1入栈
vecInt.push_back(2); //将2入栈
```
以上代码将1和2入栈到vecInt中。另外,如果需要获取vector中元素的个数,可以使用size()方法,如下所示:
```cpp
cout<<"vector contains "<<vecInt.size()<<" elements"<<endl;
```
以上代码将输出vector中元素的个数。如果需要遍历vector中的元素,可以使用迭代器,如下所示:
```cpp
vector<float> vecClass; //定义一个float类型的vector
vecClass.push_back(1.1); //将1.1入栈
vecClass.push_back(2.2); //将2.2入栈
for(vector<float>::iterator it=vecClass.begin();it!=vecClass.end();it++){
cout<<*it<<" ";
}
cout<<endl;
```
以上代码将输出vector中的所有元素。其中,begin()方法返回vector的第一个元素的迭代器,end()方法返回vector的最后一个元素的下一个位置的迭代器。
相关问题
c++ vector stack
c++中的vector是一个动态数组,可以在运行时根据需要自动调整大小。使用vector可以方便地进行元素的插入、删除和访问。在给定的引用中,使用迭代器遍历了一个vector的所有元素,并打印出来。另外,使用vecInt.size()可以获取vector中元素的数量。
而stack是一种后进先出(LIFO)的数据结构,只能在栈顶进行插入和删除操作。在给定的引用中,首先创建了一个stack对象st,并将1到5的整数依次压入栈中。然后通过top()函数获取栈顶元素的值,并使用pop()函数弹出栈顶元素。之后再次调用top()函数获取新的栈顶元素,并将其打印出来。
用vector实现栈
可以使用 std::vector 来实现栈的功能。栈是一种后进先出(LIFO)的数据结构,所以我们可以使用 vector 的 push_back 和 pop_back 方法来实现栈的 push 和 pop 操作。
首先,我们需要在头文件中包含 vector:
```c++
#include <vector>
```
接着,我们可以定义一个类作为栈的封装,其中包含一个 vector 对象和一些方法:
```c++
class Stack {
private:
std::vector<int> elements;
public:
void push(int value) {
elements.push_back(value);
}
int pop() {
if (elements.empty()) {
throw std::out_of_range("Stack is empty");
}
int value = elements.back();
elements.pop_back();
return value;
}
int size() const {
return elements.size();
}
bool empty() const {
return elements.empty();
}
};
```
在上面的代码中,我们定义了一个 Stack 类,其中包含一个私有成员 elements,它是一个 vector 对象。push 方法使用 vector 的 push_back 方法将元素插入到栈顶。pop 方法先检查栈是否为空,如果不为空则使用 vector 的 pop_back 方法将栈顶元素弹出并返回。size 和 empty 方法分别返回栈的大小和是否为空。
这样,我们就可以使用上面定义的 Stack 类来实现栈的功能了:
```c++
int main() {
Stack stack;
stack.push(1);
stack.push(2);
stack.push(3);
while (!stack.empty()) {
std::cout << stack.pop() << std::endl;
}
return 0;
}
```
上面的代码首先创建了一个 Stack 对象,然后依次将元素 1、2、3 压入栈中。接着,使用 while 循环将栈中的元素弹出并输出。输出结果为:
```
3
2
1
```
这表明栈的 push 和 pop 操作已经成功地实现了。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)