gpt4 book ai didi

c++ - 如何将初始化列表构造函数添加到 STL vector

转载 作者:太空狗 更新时间:2023-10-29 19:46:26 25 4
gpt4 key购买 nike

所以我想做的是扩展我程序中现有的 vector 类,让我可以这样说,

vector<string>* vec = new vector<string>(){"Value1","Value2"};

vector<string>* vec = new vector<string>({"Value1","Value2"});

vector<string> vec = {"Value1","Value2"};

我知道我可以完成这样的事情但是这样做,

string temp[] = {"Value1","Value2"};
vector<string> vec(temp, temp+ sizeof(temp) / sizeof( temp[0] ) );

这使用了 vectors 迭代器构造函数,但我不能删除多余的行吗?

我知道在 C# 中,您可以通过使用 partial 关键字将任何您想要的内容添加到现有内容中,

public partial class ClassName
{
ClassName(Stuff stuff)
{

}
void AmazingNewMethod()
{

}
}

C++ 有没有像这样的妙招?

我是否必须继承 vector 并构建一个 customVector,它有一个在幕后执行迭代器构造函数的构造函数?

也许将这些行包装在静态辅助函数调用中,通过引用设置它并将其添加到某处的工具箱类中?

我觉得很多程序员都遇到过这个问题。有什么优雅的解决方案吗?

谢谢。

编辑:修复标题以提及这是一个初始化列表构造函数。

最佳答案

在 C++11 中,将有初始化列表来适应这种方法。正如您提到的 .NET,我现在假设您使用的是 MS Visual Studio。 Microsoft NOT 实现了初始化列表,因此完成类似操作的最简单方法是一个函数,该函数返回添加了所有元素的 vector 。

关于部分:C++ 不提供与 .NET 的部分类相同的功能。

关于c++ - 如何将初始化列表构造函数添加到 STL vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12290467/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com