C++从数组中取出前n个元素

 无极圈晨曦 发布于 2022-12-21 13:23

使用C++,我想创建一个只包含另一个数组的前n个元素的数组.像Scala一样:val arrayTwo = arrayOne.take(n)

我知道我可以使用循环并逐个复制元素,但这比必要复杂得多,它需要不必要的空间,这使得它的可读性降低.是否有一个简单,可读的函数从给定的前一个数组的前n个元素创建一个新数组?另外我想从某个地方重用一个函数,而不是自己编写一个函数,因为我不想不必要地污染命名空间.只要需要O(n),性能无关紧要.

std :: copy_n看起来像它,但我无法让它工作,因为std :: back_inserter由于某种原因不接受我的数组(我也尝试用指针而不是数组,仍然无法工作).

到目前为止,这是我最好的尝试.

#include 
#include 
#include 
#include 
#include 
#include 
#include 

using std::pair;

int main() {
  pair fabricatedPoints[] = { { 15.3, 12.9 }, { 88.6, 56.0 },
            { 0.4, 18.0 }, { 5.0, 3.13 }, { 2.46, 86.01 } };
  pair points[] = {};
  std::copy_n(std::begin(fabricatedPoints), 3, std::back_inserter(points));
}

它可以用copy_n或其他方式完成,我不介意只要它是可读的.如果库中没有可读解决方案(不一定是标准库 - 它也可能是Boost或其他东西,只要它是一个广泛使用的库),那么我将接受一个答案,它提供了令人信服的证据,证明不存在这样的解决方案.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有