首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >以特定值C++拆分数组

以特定值C++拆分数组
EN

Stack Overflow用户
提问于 2017-03-02 23:06:46
回答 3查看 1.1K关注 0票数 3

假设我有一个这样的数组:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int arr [9] = {2,1,5,8,9,4,10,15,20}

如何在某个值阈值下拆分数组?假设int 8是我们的拆分值,那么最终结果将是两个独立的数组(如果您想尝试一下,也可以是一个2d数组),在本例中是arr1 [4] = {1,2,4,5}arr2 [5] = {8,9,10,15,20}arr1存储arr8以下的所有值,arr2存储arr8以上的所有值。

我还没有找到足够的文档或示例来说明这一点,我认为数组操作和拆分值得拥有这些示例。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-03-02 23:27:28

使用std::partition,或者,如果您希望保持相对顺序而不对数据排序,则使用std::stable_partition

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    #include <algorithm>
    #include <iostream>
    #include <vector>

    int main()
    {
        int pivot = 8;
        int arr [9] = {2,1,5,8,9,4,10,15,20};

        // get partition point  
        int *pt = std::stable_partition(arr, std::end(arr), [&](int n) {return n < pivot;});

        // create two vectors consisting of left and right hand side
        // of partition
        std::vector<int> a1(arr, pt);
        std::vector<int> a2(pt, std::end(arr));

        // output results
        for (auto& i : a1)
            std::cout << i << " ";
        std::cout << '\n';
        for (auto& i : a2)
            std::cout << i << " ";
    }

Live Example

票数 3
EN

Stack Overflow用户

发布于 2017-03-02 23:17:42

如果您可以使用C++11,那么这是使用标准库的一种方式:

使用partition_point:(编辑链接中的示例)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <algorithm>
#include <array>
#include <iostream>
#include <iterator>
#include <vector>

int main()
{
    std::array<int, 9> v = {2,1,5,8,9,4,10,15,20};

    auto is_lower_than_8 = [](int i){ return i < 8; };
    std::partition(v.begin(), v.end(), is_lower_than_8 );

    auto p = std::partition_point(v.begin(), v.end(), is_lower_than_8 );

    std::cout << "Before partition:\n    ";
    std::vector<int> p1(v.begin(), p);
    std::sort(p1.begin(), p1.end());
    std::copy(p1.begin(), p1.end(), std::ostream_iterator<int>(std::cout, " "));

    std::cout << "\nAfter partition:\n    ";
    std::vector<int> p2(p, v.end());
    std::sort(p2.begin(), p2.end());
    std::copy(p2.begin(), p2.end(), std::ostream_iterator<int>(std::cout, " "));
}

打印的内容:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Before partition:
    1 2 4 5 
After partition:
    8 9 10 15 20
票数 2
EN

Stack Overflow用户

发布于 2017-03-02 23:56:41

我正在研究一个使用循环的解决方案。这是一项正在进行的工作。让我知道你的想法。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
void splitarr(int arr[], int length) {
    int accu = 0;
    int accu2 = 0;
    int splitter = rand() % 20;
    for (int i = 0; i < length; i++) {
        if (i != splitter) {
            accu++;
        }
    }
    int arr1[accu];
    for (int i = 0; i < length; i++) {
        if (i != splitter) {
            arr1[i] = i;
        }

    }

    for (int i = 0; i < length; i++) {
        if (i == splitter) {
            accu2++;
        }
    }
    int arr2[accu2];
    for (int i = 0; i < length; i++) {
        if (i == splitter) {
            arr2[i] = i;
        }

    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42567699

复制
相关文章
项目端口可以设置为 6666 吗?
读万卷书,行万里路!有的技能可以从书里学会,有的技能却需要在实战中打怪升级慢慢掌握,今天就来和大家聊一个很多小伙伴经常遇到的问题。
江南一点雨
2020/07/29
2K0
项目端口可以设置为 6666 吗?
10.10.10.1可以设置为网关吗_个人如何做跨境电商
注:product/category路径的/会被替换为product-category 3.在src/views/modules下新建product商品文件夹,然后创建category.vue文件
全栈程序员站长
2022/09/19
9250
10.10.10.1可以设置为网关吗_个人如何做跨境电商
将 Vim 设置为 Rust IDE
Rust 语言旨在以 C++ 开发人员熟悉的方式实现具有安全并发性和高内存性能的系统编程。它也是 Stack Overflow 的 2019 年开发人员调查中最受欢迎的编程语言之一。
用户8639654
2021/09/15
1.8K0
go: kafka 将group设置为最新
有时,在确保group当前没有consumer的情况下,可以将这个group的偏移设置成最新,以保证下次启动时,group能从最新的消息消费。 代码:
超级大猪
2019/11/21
2.1K0
引用数据类型分为哪三类_类都是引用数据类型吗
说到引用数据类型,那么何为引用数据类型? 引用类型,都可以用null值作为值,也就是说可以在初始化的时候赋值为null,String是引用类型,也就是说可以使用null作为值。
全栈程序员站长
2022/11/01
7090
引用数据类型分为哪三类_类都是引用数据类型吗
父类静态方法可以重写吗?
比较坑的一个问题是,子类能否重写父类的静态方法? 答案当然是可以的。但是重写之后会发生什么,是否调用子类静态方法会执行子类的逻辑,这才是坑所在的地方。
PhoenixZheng
2018/08/07
1.5K0
将序列分解为单独的变量
python中,任何序列或可迭代的对象都可以通过一个简单的赋值操作来分解为单独的变量。前提是要求变量的总数和结构要与序列相吻合 #_*_coding:utf8_*_ p = (4, 5) x, y = p print(x) # 4 print(y) # 5 data = ['GuoJing', 30, ('杨过', '小龙女')] name, age, xialv = data print(name) # GuoJing print(xialv) # ('杨过', '小龙女') name, age, (
章鱼喵
2018/06/27
8960
C++变量的引用 | 使用变量的引用
C++可以对一个数据可以使用引用,引用是C++对C语言的一个重要扩充,引用是一种新的变量类型, 它的作用是为一个变量起一个别名。
小林C语言
2020/12/24
2.3K0
C++变量的引用 | 使用变量的引用
phpDoc注释
/** * 获得修改发票信息 * @param $id(传过来的参数) * @return array(返回的数方法的return格式) */ public function actionGetInvoiceInfo($id) { Yii::$app->response->format = Response::FORMAT_JSON; $invoice = $this->findOrder($id); /** @var User $user */(具体$user的注释在当前使
botkenni
2022/01/10
4280
java缓存设置_缓存数据可以清除吗
1、@Cacheable(key = “#vo.toString()”, value=”licence”) //载入缓存
全栈程序员站长
2022/11/09
1.6K0
Python变量类型及变量引用
       Python 不包含像 int 这样的简单类型 —— 只有对象类型, 如果 Python 中需要整数值,将整数赋值给相应变量(如i = 100 )即可。在后台,Python 将创建一个整数对象,并将对新对象的引用赋值给变量。
py3study
2020/01/15
2.5K0
java 中将引用置为null能help gc吗?
另一个说法是,具体有没有用,得看具体的代码。如果那个引用从来都没有逃逸出去,这样写就是没有什么作用的。有人说,逃逸分析是在1.6才实现,置null 操作在1.6之前可能有些用处。在即使逃逸分析已经很牛的现在,在Tree、链表这种结构中依旧要置null,因为还有一个问题是:浮动垃圾。
山行AI
2019/06/28
2.2K1
java 中将引用置为null能help gc吗?
怎样将Anaconda设置为国内的镜像
“ Anaconda是世界上最流行的数据分析平台(它们官网自己吹的nb),如果把镜像改为国内的可以节省很多时间。”
讲编程的高老师
2020/08/14
7.4K1
PyQt5 技巧篇-增加一个类级变量,类级变量的设置方法,类级"常量"设置方法
如果想增加一个全局变量来用的话,请看这篇文章: Python全局变量引用设置方法
小蓝枣
2020/09/22
8310
【Python】类型注解 ② ( 基础变量设置类型注解 | 类对象设置类型注解 | 容器变量设置简易类型注解 | 容器变量设置详细类型注解 )
元组 数据容器类型 的 详细 类型注解 , 需要为每个元素都进行类型标记 , 有几个元素就要标记几个类型 ;
韩曙亮
2023/10/11
2400
【Python】类型注解 ② ( 基础变量设置类型注解 | 类对象设置类型注解 | 容器变量设置简易类型注解 | 容器变量设置详细类型注解 )
PyQt5 技巧篇-增加一个类级变量,类级变量的设置方法,类级“常量“设置方法
如果想增加一个全局变量来用的话,请看这篇文章: Python全局变量引用设置方法
小蓝枣
2022/05/07
1000
Mac环境变量设置(以ADB为例)
按回车输入密码后用vi打开用户目录下的bash_profile文件。一定要用sudo,否则没权限保存文件。
毛大姑娘
2020/09/10
3.6K0
Shell 变量引用实例
初学 Shell 编程时,对变量各种引用使用不太熟悉,走了很多弯路,本文记录变量引用的一些用法,希望对大家有所帮助。
叨叨软件测试
2020/04/14
2.2K0
C++结构体变量的引用 | 结构体变量引用
如果成员本身也是一个结构体类型,则要用若干个成员运算符,一级一级地找到最低一级的成员。
小林C语言
2020/12/29
3.5K0
C++结构体变量的引用 | 结构体变量引用
点击加载更多

相似问题

可以将类成员变量设置为类函数的结果吗?

30

可以将变量设置为@ViewBuilder吗?

19

可以将[XmlAttribute]设置为类的缺省设置吗?

21

ArrayObject类的phpdoc变量

19

在phpDoc中,将标记设置为标记?

23
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文