首页 > 编程语言 >QT和C++排列组合

QT和C++排列组合

时间:2024-04-06 17:58:08浏览次数:28  
标签:std vector QT text C++ single num ui 排列组合

界面比较简洁,如有需要请大家自行完善!!!

头文件

#pragma once

#include <QtWidgets/QMainWindow>
#include "ui_text.h"

class text : public QMainWindow
{
    Q_OBJECT

public:
    text(QWidget *parent = nullptr);
    ~text();

    void ParseStringToVector(const QString& strData, std::vector<std::vector<int>>& vecData);

    void Paxi(std::vector<std::vector<int>> all_num, std::vector<int> single_num, int num);
    std::vector<std::string> result_str;

private:
    Ui::textClass* m_ui;;
};

 

#include "text.h"
#include  <string.h>  
#include <iostream>

using namespace std;

text::text(QWidget* parent)
    : QMainWindow(parent),
    m_ui(new Ui::textClass)
{
    m_ui->setupUi(this);
    connect(m_ui->pushButton , &QPushButton::clicked, this, [=]
        {
            m_ui->listWidget->clear();
            QString m_input = m_ui->lineEdit->text();
            vector<vector<int>> m_listData;
            ParseStringToVector(m_input, m_listData);
            std::vector<int> single_num;
            Paxi(m_listData, single_num, 0);
        });

}
text::~text()
{
}

void text::ParseStringToVector(const QString& strData, vector<vector<int>>& vecData)
{
   
    vecData.clear();
    auto rows = strData.split(";");
    for (auto row : rows)
    {
        if (row == "")break;
        auto values = row.split(",");
        std::vector<int> rowData;
        for (auto value : values)
        {
            rowData.push_back(value.toInt());
        }
        vecData.push_back(rowData);
    }
}


void text::Paxi(std::vector<std::vector<int>> all_num, std::vector<int> single_num, int num)
{
    for (int i = 0; i < all_num[num].size(); i++)
    {
        if (num < all_num.size() - 1)
        {
            if (num < single_num.size())
            {
                single_num[num] = all_num[num][i];
            }
            else
            {
                single_num.push_back(all_num[num][i]);
            }
            Paxi(all_num, single_num, num + 1);
        }
        else
        {
            //single_num.push_back(all_num[num][i]);
            std::string str;
            for (int j = 0; j < single_num.size(); j++)
            {
                str += to_string(single_num[j]) + ",";
            }
            str += to_string(all_num[num][i]);
            result_str.push_back(str);
            m_ui->listWidget->addItem(QString::fromStdString(str));
        }
    }
}
 

主函数

#include "text.h"
#include <QtWidgets/QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    text w;
    w.show();
    return a.exec();
}
 

 

标签:std,vector,QT,text,C++,single,num,ui,排列组合
From: https://blog.csdn.net/weixin_52828307/article/details/137432987

相关文章

  • 深入理解C++ lambda表达式:用法、特性与最佳实践
    文章目录一、引言1、lambda表达式的概念2、lambda表达式在C++中的重要作用3、lambda表达式的基本语法结构二、lambda表达式的核心特性1、捕获列表2、参数列表3、返回类型4、函数体5、multable关键字三、lambda表达式的进阶用法1、lambda表达式与STL算法的结合使用2、la......
  • C++11中auto与decltype的区别与联系深入解析
    文章目录一、引言二、auto关键字及其特性1、auto的基本定义与用途2、auto在类型推导中的应用3、auto的局限性及需要注意的问题三、decltype关键字及其特性1、decltype的基本定义与用途2、decltype在类型推导中的应用3、decltype的局限性及需要注意的问题四、auto与decl......
  • C++从入门到精通——类和对象(上篇)
    1.面向过程和面向对象初步认识C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。C++是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。2.类的引入C语言中,结构体中只能定义变量,在C++中,结构体内不仅可以定义变量......
  • C++数据结构与算法——回溯算法组合问题
    C++第二阶段——数据结构和算法,之前学过一点点数据结构,当时是基于Python来学习的,现在基于C++查漏补缺,尤其是树的部分。这一部分计划一个月,主要利用代码随想录来学习,刷题使用力扣网站,不定时更新,欢迎关注!文章目录一、77.组合二、216.组合总和III三、17.电话号码的字......
  • C++ this指针的概念和使用
    this指针的概念:在C++中成员变量和成员函数是分开存储的。每一个非静态成员函数只会诞生一份函数实例,也就是说多个同类型的对象会共用一块代码。那么问题是:这一块代码是如何区分哪个对象调用自己的呢?c++通过提供特殊的对象指针,this指针,解决上述问题。关键:this指针指向......
  • C++中拷贝构造函数调用时机——学习记录
    拷贝构造函数调用时机:C++中拷贝构造函数调用时机通常有三种情况使用一个已经创建完毕的对象来初始化一个新对象值传递的方式给函数参数传值以值方式返回局部对象问题描述在黑马C++课程上学习时发现,第三种情况:以值方式返回局部对象时会不会调用构造函数。对比后发现,黑......
  • 使用pyqt,opencv,matplotlib开发一个图片浏览器!
    使用python开发一个图片浏览器!作用效果代码作用读取图片到界面并显示,对与宽度或高度大于600像素的图片进行等比缩小,让图片适合显示到界面;输出图片的基础信息,大小和颜色通道;绘制图片的单颜色通道直方图;效果颜色直方图有记忆功能,方便做对比代码importcopyimpor......
  • 使用OpenCV和PyQT编写的图片显示器,实现图片选择显示和保存
    使用OpenCV和PyQT编写的图片显示器简要效果代码简要为了避免重复编写pyqt控件,先写好此代码,方便使用。实现了以下基础功能:选择图片显示图片保存图片效果选择图片:显示图片:保存图片:代码importcopyimportcv2importsysfromPyQt5.QtWidgetsimport(......
  • socket编程——C++实现基于UDP协议的简单通信(含详解)
    文章后面有代码,可以直接复制在VisualStudio2022中运行(注意:必须是两个项目,客户端服务端各一个,连接在同一网络中,先运行服务端,并且客户端数据发送的目标IP要改为你服务端的IP)目录前言帮助文档一、UDP通信框架1.服务端2.客户端二、服务端实现1.加载库(WSAStartup函数)......
  • [C++] 小游戏 斗破苍穹2.8.1版本 zty出品
    前言大家好,今天zty带来的是首次增加调试角色的版本,2.8.1版本主要更新了调试角色(感觉没啥用)。先赞后看 养成习惯点赞过100一天更3次正文#include<stdio.h>#include<iostream>#include<ctime>#include<bits/stdc++.h>#include<time.h>//suiji#include<windows.h>/......