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),以便您不会溢出数组. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |