C++中vector容器的逆序访问

  今天在写个小的十进制转换程序时,遇到个问题就是关于vector容器的逆序访问问题,后来知道其中有多种方法可以解决,下面介绍我应用的两种简单方法,顺便熟悉一下vector容器的相关函数。下面是相关代码:

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

int main()
{
    int a = 0, d = 0, answer1 = 0, mod = 0, answer2 = 0;
    vector<int> m;
    cout << "Please input the number :" << endl;
    cin >> a;
    cout << "Please input the scale :" << endl;
    cin >> d;
    while (a)
    {
        mod = a%d;
        a = a / d;
        m.push_back(mod);
    }
    for (vector<int>::reverse_iterator it = m.rbegin(); it != m.rend(); it++)
    {
        answer2 = (*it) + answer2 * 10;
    }
    reverse(m.begin(), m.end());
    for (vector<int>::iterator it = m.begin(); it != m.end(); it++)
    {
        answer1 = (*it)+answer1*10;
    }
    cout << answer1 << endl;
    cout << answer2 << endl;
}

  程序中用蓝色和黄色标记的分别是两种不同的方法,第一种利用的是逆置迭代器,要注意逆置迭代器的初始化。第二种是利用头文件<algorithm>中的函数reverse进行容器的逆置,要注意包含头文件。两种方法都很简单和方便。

时间: 2024-11-06 04:39:57

C++中vector容器的逆序访问的相关文章

C++STL中vector容器 begin()与end()函数、front()与back()的用法

一.begin函数 函数原型: iterator begin(); const_iterator begin(); 功能: 返回一个当前vector容器中起始元素的迭代器.   二.end函数 函数原型: iterator end(); const_iterator end(); 功能: 返回一个当前vector容器中末尾元素的迭代器.   三.front函数 函数原型: reference front(); const_reference front(); 功能: 返回当前vector容器中起

C++STL库中vector容器常用应用

#include<iostream> #include<vector> #include<algorithm> using namespace std; int main() { vector<int> vec; vec.push_back(1);//在尾部插入元素 vec.push_back(2); // cout<<vec[1];//按下标访问元素,从[0]开始 /* //使用迭代器访问元素 vector<int>::iterat

C++中vector容器

在c++中,vector是一个十分有用的容器,下面对这个容器做一下总结. 1. 基本操作 (1)头文件 #include<vector>. (2)创建vector对象 vector<int> vec; (3)尾部插入数字 vec.push_back(a); (4)使用下标访问元素 cout<<vec[0]<<endl; //记住下标是从0开始的. (5)使用迭代器访问元素 vector<int>::iterator it; for(it=vec.

软件工程导论课后习题Github作业(把一个英文句子中的单词次序逆序,单词中字母正常排列)

Java源代码  package yly; import java.util.Scanner; public class ruanjian { public static void main(String[] args) { // TODO Auto-generated method stub String q = "how are you"; String[] aa=(String[]) q.split(" "); for(int i = aa.length ;i

java 将一个数组中的值按逆序重新存放,例如,原来顺序为:9,5,7,4,8,要求改为:8,4,7, 5,9。

1 public class Test3 { 2 3 public static void main(String[] args) { 4 5 int[] grade = {87,88,89,98,78}; 6 7 int m; 8 for(int i = 0; i < 2; i++){ 9 10 m = grade[i]; 11 grade[i] = grade[5-i-1]; 12 grade[5-i-1] = m; 13 14 } 15 for(int j =0; j < 5; j++)

&quot;Coding Interview Guide&quot; -- 仅用递归函数和栈操作逆序一个栈

[题目] 一个栈依次压入1.2.3.4.5,那么从栈顶到栈底分别为5.4.3.2.1.将这个栈转置后,从栈顶到栈底为1,2,3,4,5,也就是实现栈中元素的逆序,但是只能用递归函数来实现,不能使用其它数据结构 [分析] 栈是一种操作受限的数据结构,只能从某一端进行插入和删除和访问元素.能进行插入删除和访问等操作的一端称为“栈顶”,相对的另一端,不能进行任何栈操作,称为栈底.栈中除了栈顶元素外,其它的栈元素都是不允许访问的.所以想要访问栈中其它元素,则只能将将栈中元素依次弹出直到该元素成为栈顶元素

标准模板库(STL)学习探究之vector容器

标准模板库(STL)学习探究之vector容器  C++ Vectors vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库.vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据.为了可以使用vector,必须在你的头文件中包含下面的代码:#include <vector>构造函数. Vectors 包含着一系列连续存储的元素,其行为和数组类

STL中vector的用法

vector应该是STL种最常用的容器了,可以当做数组来看待,只不过vector的元素更丰富,不仅仅是数据元素,还可以是结构体 1.vector的创建和初始化 vector <double> v;//创建一个double类型的vector vector <int> v2(5);//创建一个含有5个元素的int型vector,初始值默认为0 vector <int> v3(4,7);//创建一个含有4个元素的int型vector,初始值都为7 当然也可以通过在尾部添加元素

[算法]链表的逆序遍历节点

有一个链表,知道链表头,怎么逆序打印出链表每个节点的值. 我们知道,当知道了链表头的时候,很容易顺序访问所有节点的值,但是如何逆序访问所有节点呢? 访问一棵二叉树,通常可以深度优先和广度优先访问每个节点,深度优先又分为先序,中序和后续遍历,后续遍历就是先访问树的右子树,再访问左子树,最后访问父节点,如果我们把一个链表看成是一颗单叉树,利用树的后续遍历就达到了逆序访问链表的每个节点,利用递归,实现代码如下: struct node { int val; node* next; }; void tr