Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.12.2018, 23:31   #1
vladrrom
Пользователь
 
Регистрация: 14.12.2016
Сообщений: 54
По умолчанию Java to C++

Здравствуйте! Есть ли умельцы, знающие Java, чтобы перевести код в C++?
Испытываю проблемы с переводом фрагмента кода из Java в C++. Затруднения возникают с объявлением двумерного массива да и не только с ним.)
Если кто-то поможет, то здоровья ему и счастья ахах)
Заранее спасибо.

Код:
public class Thomas {
    private double[][] workM, kM;
    private double[] aM;
    private int n;
    
    public double[] start(double[][] workM, int n){
        this.workM = workM;
        this.n = n;
        aM = new double[this.n];
        kM = new double[this.n][2];      //alpha_i, beta_i
        count();
        return aM;
    } 
    ...
vladrrom вне форума Ответить с цитированием
Старый 05.12.2018, 23:53   #2
vladrrom
Пользователь
 
Регистрация: 14.12.2016
Сообщений: 54
По умолчанию

Ниже мои тщетные попытки:
Код:
class Thomas {
private:
	double* workM;
	double* kM;
	double* aM;
	int n;
public:
	double start(double* workM, int n) {
		this->workM = workM;
		this->n = n;
		aM = new double[this->n];
		kM = new double[this->n][2]; //значение типа "double (*)[2]" нельзя присвоить сущности типа "double *"
		count();
		return aM;
	}
};
vladrrom вне форума Ответить с цитированием
Старый 06.12.2018, 00:09   #3
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Примерно так же new (+delete) или std::vector<std::vector<double>>
Только цикл еще нужен, нельзя сразу все.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 06.12.2018, 00:15   #4
vladrrom
Пользователь
 
Регистрация: 14.12.2016
Сообщений: 54
По умолчанию

Что-то типа такого?
aM = std::vector<double>(this->n);
kM = std::vector<std::vector<double>>(th is->n)(2);

А каким образом объявить переменные aM, kM? ибо преобразование будет кривое..
vladrrom вне форума Ответить с цитированием
Старый 06.12.2018, 00:18   #5
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

start вообще очень похоже на конструктор если вызывается 1 раз за время жизни объекта, удобнее тогда с ним.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 06.12.2018, 11:42   #6
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от vladrrom Посмотреть сообщение
Здравствуйте! Есть ли умельцы, знающие Java, чтобы перевести код в C++?
Испытываю проблемы с переводом фрагмента кода из Java в C++. Затруднения возникают с объявлением двумерного массива да и не только с ним.)
Если кто-то поможет, то здоровья ему и счастья ахах)
Заранее спасибо.

Код:
public class Thomas {
    private double[][] workM, kM;
    private double[] aM;
    private int n;
    
    public double[] start(double[][] workM, int n){
        this.workM = workM;
        this.n = n;
        aM = new double[this.n];
        kM = new double[this.n][2];      //alpha_i, beta_i
        count();
        return aM;
    } 
    ...



Код:
#include <iostream>
#include <vector>

class Thomas 
{
    using array_t  = std::vector<double>;
    using matrix_t = std::vector<array_t>;
    
	array_t workM;
    array_t aM;
	matrix_t kM;
public:
    Thomas()
        : workM()
        , aM()
        , kM()
    {}
    
	auto start(const array_t& workM, const size_t n) -> auto&
    {
		this->workM = workM;
        
        this->aM.clear();
        this->aM.resize(n);

        this->kM.clear();
        for(size_t i = 0; i != n; ++i)
            this->kM.emplace_back(2, 0.0);
        
		//count();
		return aM;
	}
};


 
int main()
{
    Thomas example;
    
    example.start( {0.0,1.0,2.0,3.0}, 5);
}
_Bers вне форума Ответить с цитированием
Старый 06.12.2018, 11:46   #7
vladrrom
Пользователь
 
Регистрация: 14.12.2016
Сообщений: 54
Хорошо

Спасибо! Взглянул с другой стороны на объявление массивов, метод удобнее чем тоскаться всякий раз с std::vector<double>
Помогли!

Последний раз редактировалось Alex11223; 06.12.2018 в 11:53.
vladrrom вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переполнение кучи java.lang.OutOfMemoryError: Java heap space Karik_ Java Базы данных (JDBC, JPA, Hibernate) 4 09.03.2017 12:04
JAVA. Написать один метод на java для существующей реализации squadgazzz Фриланс 1 14.02.2017 14:04
Помогите справиться с java.lang.OutOfMemoryError: Java heap space Levilaulada Помощь студентам 1 17.05.2009 10:59