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

c – 从向量初始化数组

发布时间:2020-12-16 09:34:49 所属栏目:百科 来源:网络整理
导读:可以从包含与向量相同类型的元素的数组初始化向量,例如 double a[] ={ somevalues };std::vectordouble vec(a,a+dimension) 我想知道如果没有明确的循环,是否可能相反?是否可以从像上面那样的快捷方式的矢量初始化数组,我想不是,但让我问… 解决方法 不,在
可以从包含与向量相同类型的元素的数组初始化向量,例如

double a[] ={ somevalues };
std::vector<double> vec(a,a+dimension)

我想知道如果没有明确的循环,是否可能相反?是否可以从像上面那样的快捷方式的矢量初始化数组,我想不是,但让我问…

解决方法

不,在初始化时不可能这样做,但您可以使用STL中的一种算法:

std::vector<int> v = create_vector();
int array[100];
assert( v.size() >= 100 );
std::copy( v.begin(),v.begin()+100,array );

或者:

std::copy_n( v.begin(),100,array );

断言是为了确保您不会超出向量的大小(这将导致未定义的行为),并限制副本(表达式中的100),以便您不会溢出数组.

(编辑:李大同)

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

    推荐文章
      热点阅读