加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 如何将初始化列表构造函数添加到STL向量

发布时间:2020-12-16 10:22:52 所属栏目:百科 来源:网络整理
导读:所以我想要做的是扩展程序中现有的vector类,让我这样说, vectorstring* vec = new vectorstring(){"Value1","Value2"}; 要么 vectorstring* vec = new vectorstring({"Value1","Value2"}); 要么 vectorstring vec = {"Value1","Value2"}; 我知道我可以做到这
所以我想要做的是扩展程序中现有的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] ) );

这使用向量迭代器构造函数但不能删除额外的行吗?

我知道在C#中你可以使用像这样的部分关键字来添加你想要的任何东西,

public partial class ClassName
{
   ClassName(Stuff stuff)
   {

   }
   void AmazingNewMethod()
   {

   }    
}

C在某个地方有这样一个漂亮的伎俩吗?

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

也许将这些行包装在一个静态Helper函数调用中,该调用通过Reference设置它并将其添加到某个工具箱类中?

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

谢谢.

编辑:修复标题,提到这是一个初始化列表构造函数.

解决方法

在C 11中,将有初始化列表来配合这种方法.正如你提到.NET我现在假设你正在使用MS Visual Studio. Microsoft没有实现初始化程序列表,因此完成此类操作的最简单方法是返回添加了所有元素的向量的函数.

部分事情:C不提供与.NET的部分类相同的功能.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读