访问类成员向量最后一项的正确方法
Correct way of accessing last item of a class member vector
我从main((函数中到达了类向量的最后一个元素。但我不确定这是否是正确的方法。这是代码部分:
#include <iostream>
#include <vector>
#include <string>
using namespace std;
class myClass
{
public:
std::vector <wstring> Vec;
std::vector <wstring> Vec2;
std::vector <wstring> Vec3;
// ...
std::vector <wstring> Vec35;
myClass();
};
myClass::myClass() : Vec{ L"Init" }, Vec2{ L"Init" }, Vec3{ L"Init" }, Vec35{ L"Init" } {}
void func(std::vector<wstring>& v)
{
v.push_back(L"The Last Element");
}
int main()
{
myClass mC;
func(mC.Vec);
wstring last = *(((std::vector <wstring>&) mC.Vec).rbegin()); // Is it the correct way to do this?
std::wcout << L"Last element reached from inside of main() function is : " << last << std::endl;
return 0;
}
输出为:
Last element reached from inside of main() function is : The Last Element
使用rbegin
确实是一种方式。然而,演员阵容是不必要的。
但更直接的方法是使用back
.与rbegin
提供必须取消引用的迭代器不同,back
为您提供对最后一项的引用。
wstring last = mC.Vec.back();
无论哪种方式,您都应该首先检查向量是否empty
。
是的。虽然这是一种描述性的说法。
只
wstring last = *mC.Vec.rbegin();
应该足够了。无需显式强制转换。
相关文章:
- 有符号的int和int-有没有一种方法可以在C++中区分它们
- 有没有一种方法可以创建一个带有哈希表的数据库,该哈希表具有恒定时间查找功能
- 有没有一种方法可以在编译时获得作用域类名
- 有没有一种方法可以测量c++程序的运行时内存使用情况
- 有没有一种方法可以使用placement new将堆叠对象分配给分配的内存
- 有没有一种方法可以通过"typedef"为重新定义的基本类型定义特征和强制转换运算符
- 在 c++ 中,有一种方法可以创建一个包含地图作为值的树状地图?
- C++ STD 函数运算符:有没有一种方法可以通过函数将一个向量映射到另一个向量上?
- 有没有一种方法可以捕获进程中的堆栈溢出?C++Linux
- C++有没有办法强制重写一组方法,如果其中一个方法在子类中具有重写?
- std::ifstream 在读取文件中最后一项时设置 eofbit,但仅在读取数值类型时发生
- 我想直接在结构中插入,但没有一种方法可以正确避免填充问题
- 访问类成员向量最后一项的正确方法
- 我正在尝试解决英特尔架构并行基础课程中关于 Coursera 的一项作业
- 使用 C++20 概念强制类实现一组方法
- 使用 fstream 在空格分隔文件中查看下一项(不仅仅是一个字符)的方法
- 有没有一种方法可以使用std::array与文字或初始值设定项列表进行比较,就像使用赋值一样
- 在编程中,这两项任务中的任何一项都有算法方法吗
- c++标准库中的一种方法,用于从满足条件的列表中删除一对项中的一个
- c++有一种方法可以将优先级队列元素复制到vector中,这样就可以对其进行迭代以检查是否有重复项