📌  相关文章
📜  C++ STL中的array :: front()和array :: back()

📅  最后修改于: 2021-05-30 12:08:01             🧑  作者: Mango

数组类通常比C型数组更有效,更轻量且更可靠。 C++ 11中数组类的引入为C样式数组提供了更好的替代方法。

array :: front()

此函数用于引用数组容器的第一个元素。此函数可用于获取数组的第一个元素。
句法 :

arrayname.front()
Parameters :
No parameters are passed.
Returns :
Direct reference to the first element of the array container.

例子:

Input :  myarray = {1, 2, 3, 4}
         myarray.front()
Output : 1

Input :  myarray = {3, 6, 2, 8}
         myarray.front()
Output : 3

错误和异常

1.如果数组容器为空,则会导致未定义的行为。
2.如果数组不为空,则没有异常抛出保证。

// CPP program to illustrate
// Implementation of front() function
#include 
#include 
using namespace std;
  
int main()
{
    array myarray{ 1, 2, 3, 4, 5 };
    cout << myarray.front();
    return 0;
}

输出:

1
array :: back()

此函数用于引用数组容器的最后一个元素。此函数可用于从数组末尾获取最后一个元素。
句法 :

arrayname.back()
Parameters :
No parameters are passed.
Returns :
Direct reference to the last element of the array container.

例子:

Input :  myarray = {1, 2, 3, 4}
         myarray.back()
Output : 4

Input :  myarray = {4, 5, 6, 7}
         myarray.back()
Output : 7

错误和异常

1.如果数组容器为空,则会导致未定义的行为。
2.如果数组不为空,则没有抛出异常的保证。

// CPP program to illustrate
// Implementation of back() function
#include 
#include 
using namespace std;
  
int main()
{
    array myarray{ 1, 2, 3, 4, 5 };
    cout << myarray.back();
    return 0;
}

输出:

5
front(),back()和begin,end()函数之间的区别

begin()和end()函数返回一个初始化为容器的第一个或最后一个元素的迭代器(如指针) ,该迭代器可用于遍历该集合,而front()和back()函数仅返回一个引用到容器的第一个或最后一个元素。

应用
给定一个整数数组,打印第一个和最后一个元素之间的差。

Input: 1, 2, 3, 4, 5, 6, 7, 8
Output:7
Explanation: Last element = 8, First element = 1, Difference = 7

算法
1.比较第一个和最后一个元素。
2.如果第一个元素较大,请从中减去最后一个元素并进行打印。
3.否则从最后一个元素中减去第一个元素并打印出来。

// CPP program to illustrate
// application Of front() and back() function
#include 
#include 
using namespace std;
  
int main()
{
    array myarray{ 1, 2, 3, 4, 5, 6, 7, 8 };
  
    // Array becomes 1, 2, 3, 4, 5, 6, 7, 8
  
    if (myarray.front() > myarray.back()) {
        cout << myarray.front() - myarray.back();
    }
    else if (myarray.front() < myarray.back()) {
        cout << myarray.back() - myarray.front();
    }
    else
        cout << "0";
}

输出:

7
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”