Форум программистов, компьютерный форум CyberForum.ru

Закрутить массив в вектор - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Переменная типа char http://www.cyberforum.ru/cpp-beginners/thread963765.html
Учусь программированию на C++. Вот, столкнулся с проблемой. Пытался найти ответ в интернете, но об этом нигде не сказано. Дело в том, что я хочу сделать программу рандомно выбирающую имя. После же, это имя выводящее. Но ничего не выходит. Пишет какую то белиберду, я ничего не понимаю. Помогите найти ошибку и подскажите способ устранить её. #include "stdafx.h" #include <iostream> #include...
C++ Бесконечный цикл не вешающий программу Добрый день. Столкнулся с тем, что мне необходимо мониторить директорию на наличие определенного файла. Суть в том, что цикл мониторинга вешает программу из-за своей бесконечности. Вопрос состоит в том, как написать программу так, чтобы функция проверки поиска файла в цикле работала не зависимо от остального кода и не мешала перемещаться по программе дальше? http://www.cyberforum.ru/cpp-beginners/thread963763.html
C++ Функция pow как написать команду для неё
Здравствуйте, В моей программе есть команда y=a^2+b^3/a^3-b^3. Мне сказали, что его надо прописать через pow, на что и ругается компилятор. Пишет перегруженная функция. Вот кусок от программы. Подскажите, что надо исправить? Заранее спасибо if ((a<=1)&&(a>=0)) {if (a*a*a!=b*b*b) {float y=pow; a;2+pow; b;3/pow; a;3-pow; b;3; cout<<y; getch ();
C++ Вынос реализации метода шаблона класса в другой файл
Здравствуйте! Допустим, есть класс: // class.hpp #ifndef CLASS_HPP_ #define CLASS_HPP_ class testClass{ public:
C++ Структуры и файлы (Структура "Стадион") http://www.cyberforum.ru/cpp-beginners/thread963730.html
Сформировать двоичный файл из элементов, заданной ниже структуры, распечатать его содержимое, выполнить удаление и добавление элементов в соответствии со своим заданием, используя для поиска удаляемых или добавляемых элементов функцию. Формирование, печать, добавление и удаление элементов оформить в виде функций. Предусмотреть сообщения об ошибках при открытии файла и выполнении операций...
C++ способ по организации программы Ребята. Сегодня сдавал задачи и преподаватель сказал, что нужно использовать ДИНАМИЧЕСКИЙ массив. Ниже код программы(откомпилированный, работает прекрасно). Что нужно для того что изменить код под динамич массив? Много переделывать? /* стр 83 зад 30 Дана вещ. квадратная матрица размерности N. Посчитать x1*xN + x2*xN-1 + ... + xN*x1, где xk - наибольшее значение элементов k-ой строки матрицы... подробнее

Показать сообщение отдельно
recoder
130 / 130 / 28
Регистрация: 13.09.2013
Сообщений: 260
Записей в блоге: 2

Закрутить массив в вектор - C++

27.09.2013, 17:52. Просмотров 254. Ответов 1
Метки (Все метки)

На паре задали задачу: Закрутить массив в вектор.

Написал вот такое решение:
Вопрос можно ли как то оптимизировать?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#include <iostream>
using namespace std;
 
void Matrix(int ** b,int * a, int m);
 
int main(){
 
    cout << "Введите размер вектора: ";
    int m;
    cin >> m;
 
    // Вектор
    int* a = new int[m*m];
    // Матрица
    int** b = new int*[m];
    for (int i = 0; i < m; i++){
        b[i] = new int[m];
    }
 
    // Заполняем вектор
    for (int i = 0; i < m*m; i++)
    {
        a[i] = i + 1;
    }
 
    int count = 0;
    // Засовываем вектор в матрицу
    for (int i = 0; i < m; i++){
        for (int j = 0; j < m; j++){
            b[i][j] = a[count];
            count++;
        }
    }
 
    // Закручиваем
    Matrix(b, a, m);
 
    // Выводим матрицу
    for (int i = 0; i < m; i++){
        for (int j = 0; j < m; j++)
            cout << b[i][j] << " ";
        cout << endl;
    }
 
    // удаление матрицы
    for (int i = 0; i < m; i++)
        delete []b[i];
    // удаление вектора
    delete [] a;
    return 0;
}
 
void Matrix(int **b,int *a, int m)
{
    int h = 0;
    int r1, r2, r3, r4;
    r1 = r2 = r3 = r4 = 0;
    while (h != m*m){
        // Первый
        for (int i = r1; i < r1 + 1; i++)
            for (int j = r1; j < m - r1; j++){
                b[i][j] = a[h];
                h++;
            }
            r1++;
        // Второй
        for (int i = r2 + 1; i < m - r2; i++)
            for (int j = m - (r2 + 1); j < m - r2; j++){
                b[i][j] = a[h];
                h++;
            }
        r2++;
        // Третий
        for (int i = m - (r3 + 1); i < m - r3; i++)
            for (int j = m - (r3 + 2); j >= r3; j--){
                b[i][j] = a[h];
                h++;
            }
        r3++;
        // Четвертый
        for (int i = m - (r4 + 2); i > r4; i--)
            for (int j = r4; j < r4 + 1; j++){
                b[i][j] = a[h];
                h++;
            }
        r4++;
    }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru