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

Где лучше эти переменные объявлять? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Перевод секунд (произвольное целое число) в часы, минуты и секунды http://www.cyberforum.ru/cpp-beginners/thread374630.html
Составить программу, которая будет переводить секунды (произвольное целое число) в часы, минуты и секунды.
C++ сортировка выбором помогите пожалуйста, алгоритм не работает то есть не сортирует #ifndef FUNC #define FUNC #include "vibor.h" #include <vector> #include <algorithm> using namespace std; template<class T> void vibor(vector<T> &v){//сортировка T temp; http://www.cyberforum.ru/cpp-beginners/thread374624.html
C++ Научите писать программы на C++
Привет всем ,начну с того ,что перевелся в универе на информатика на заочке(хочу научиться писать программы,) так как это "мое",зимой сессия ,а помоч и разъяснить не кому вот и пришел к ВАМ ,надеюсь на помощь . Дали задание "Написать программу поэлементного копирования строки «Hello World» в другой символьный массив."Помогите ,пожалуйста и если можете объясните ,что к чему.
Перевод с java на С++ C++
Всем доброго времени суток. Возможно ли перевести код с java на С. Я попробовал сам,начал,но там много того что я не знаю чем заменить в С, потому что толком не понимаю что это обозначает. код не очень большой, половина просто фигни типа вывода,ввода,мат.функций и т.д.. Очень прошу помощи, откликнитесь пожалуйста... package Shenks; import java.math.BigInteger; import...
C++ При наличие корней в системе уравнений выдает ошибку http://www.cyberforum.ru/cpp-beginners/thread374598.html
После выполнения программы (она решает систему линейных уравнений) для случая наличия корней появляется ошибка. Вот код: #include <stdio.h> #include<stdlib.h> #include<time.h> #define N 4 typedef struct {int*a; bool l;//нулевой ли вектор
C++ Builder Сформировать одномерный массив, состоящий из отрицательных элементов заданных матриц Заданы два массива B(10,10), C(10,10). Сформировать одномерный массив D, состоящий из отрицательных элементов заданных массивов. сделала автозаполнение массивов. как дальше???:sigh: void __fastcall TForm1::Button1Click(TObject *Sender) { for(int i=0; i<10; i++) for(int j=0; j<10; j++) StringGrid1->Cells = IntToStr((rand() % 100) - 50); подробнее

Показать сообщение отдельно
Bers
Заблокирован
30.10.2011, 12:31     Где лучше эти переменные объявлять?
Цитата Сообщение от Lonely_Romantic Посмотреть сообщение
Вы бы пример привели какой-нибудь, чтобы можно было о чем-то конкретном спорить. (ну или контр-пример для моих рассуждений, который покажет что я не прав
1.Я не спорю, я пытаюсь понять.

2. Пример - класс Контейнера2Д. На самом деле это обертка на вектором контейнеров (по умолчанию - над вектором векторов)
Предоставляет интерфейс управления "матрицей". Многие методы внутри себя создают Итератор вектора. И с его помощью осуществляют пробег по массиву.

Например:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void_TContainer2D::Copy(TContainer2D& priemnick, const SRectange& target)
{
    SRectange modTarget(target); ModificatedRectange(modTarget);
    priemnick.ReSize(modTarget.sizeX,modTarget.sizeY);
 
    typename tCont::const_iterator Begin;
    typename tCont::const_iterator End;
    typename CTable::iterator BeginTable=myTable.begin()+modTarget.y;
    typename CTable::iterator IterPriemnick=priemnick.myTable.begin();
 
    while(IterPriemnick!=priemnick.myTable.end())
    {
        Begin=BeginTable->begin()+modTarget.x;
        End =Begin+modTarget.sizeX;
        IterPriemnick->assign(Begin, End);
        ++BeginTable; ++IterPriemnick;
    }
}
Я не знаю насколько трудозатратно создание итератора стандартного контейнера, но:
1. Многие методы вынуждены постоянно создавать их, и разрушать.

2. Обертка позволяет хранить строки матрицы не только в виде вектора, но и в виде стринга, виде дека, в виде самопального какого нибудь одномерного контейнера. А это значит, что теоретически, итератор может быть каким угодно, вплоть до того, что будит жрать дин. память.

Поэтому, у меня есть крамольные мысли, что есть смысл заранее сделать в классе четыре итератора (два для для самой таблицы, два для строки таблицы).
Что бы сократить время на создавание и инициализацию их в каждом методе.

Кроме того, по правилу "единого интерфейса", контейнер-таблица окажет себе большую услугу, если максимально будит похож на все прочие контейнеры стл.

То бишь, итераторы таблицы неплохо было бы забацать в виде статик-членов...

/ps метод не доделан, там нужно с константностью всего метода разобраться
 
Текущее время: 23:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru