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

Стандарты и стили языков программирования - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ компиляция программы на с http://www.cyberforum.ru/cpp-beginners/thread223044.html
Привет всем. У меня такая проблема. Я написал программу на С именно на С а не на С++. Написал я её в notepad++ а вот скомпилировать немогу. Есть у меня Visual Studio 2005, но как скомпилировать на нём то что писал не в нем? И возможно ли вообще компилировать программы на С в Visual Studio?
C++ табуляция функции в С++ Подскажите пожалуйста с решением задачи Задача . (консольная программа). Выполнить табуляцию функции, указанной в условии, на отрезке (a<b) с шагом d. Построение таблицы произвести в текстовом файле table.txt. По окончании работы полученный файл открыть в окне программы Блокнот (программно). Параметры a, b, d ввести в диалоге с клавиатуры (обеспечить проверку корректности ввода). ... http://www.cyberforum.ru/cpp-beginners/thread223011.html
Игры на С++ C++
Вот мне стало интересно, кто-нибудь из вас делал миниигры (или даже просто игры=)). Мне не интересен исходный код( всё равно я ничего не пойму), просто хочу узнать, сможет ли ли обычный программист сделать что-нибудь эдакое. Прошу выкладывать и здесь. P.S. А настоящие игры и их движки делают на С++ или на чём-то другом?
C++ Наболевшие вопросы
Есть несколько вопросов, помогите пожалуйста найти ответ.. 1) Если мы выделяем память динамически для массива объектов класса, есть ли возможность передать входящие параметры в конструктора этих объектов? Если да, то как? (параметры разные для разных индексов объектов) 2) Если уже инициализированы несколько элементов массива(которые объекты класса), можно ли выделить еще динамически память...
C++ Задание на перечисления http://www.cyberforum.ru/cpp-beginners/thread222981.html
Напишите программу,которая сначала по первой букве должности,введенной пользователем, определяет соответствующие значение переменной, помещает это значение в переменную типа etype, а затем выводит полностью название должности, первую букву которой ввел пользователь. #include <stdio.h> enum etype {laborer, secretary,manager, accountant,executive,researcher}; int main() { char prof;...
C++ Вопрос по программированию в Xcode в компиляторе от майкрософт , например, при заведение структурной переменной , а затем при создание ее с каким либо полем в другой функции например Struct blabla { int number } int main { blabla s1. ЗДЕСЬ после точки появляется список возможных полей или функций } подробнее

Показать сообщение отдельно
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
07.01.2011, 05:23     Стандарты и стили языков программирования
accept, 1) Чтобы в ней не хранилось по данному коду - мы этого не увидим... Зачем писать неверную (в данном случае зацикленную) программу в попытке что-то доказать? Тем более в string ведь можно поместить не бесконечное кол-во символов (как бэ тип size_t у размера контейнера намекает).

2) А зачем к вектору применять memove? Это совершенно другая ступень работы. С обычным массивом - мы работаем с памятью. С вектором - мы работаем с итераторами, которые в данном случае есть удобная обертка указателей. + мы работаем с функциями-членами вроде reserve/push_back/resize etc. Так какой смысл применять к нему memove?

+ отрывок функции которая используется при реализации вектора.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
template<class _Ty1,
    class _Ty2> inline
    _Ty2 _Uninit_copy(_Ty1 _First, _Ty1 _Last, _Ty2 _Dest,
        _Scalar_ptr_iterator_tag, _Range_checked_iterator_tag)
    {   // copy [_First, _Last) to raw _Dest, scalar type
    _DEBUG_RANGE(_First, _Last);
    _DEBUG_POINTER(_Dest);
    size_t _Count = (size_t)(_Last - _First);
    _Ty2 _Result = _Dest + _Count;
    if (_Count > 0)
        _CRT_SECURE_MEMMOVE(&*_Dest,
            _Count * sizeof (*_First), &*_First,
            _Count * sizeof (*_First)); // NB: non-overlapping move
    return (_Result);
    }
Функция находится в заголовочном файле memory.
Впринципе в векторе (и в остальных контейнерах) даже нет напрямую работы с памятью в реализации. Ведь как распределитель используется аллокатор (что есть тоже обертка для более удобного распределения памяти, чего в массивах нету).

А теперь - полная иерархия реализации конструктора копирования для вектора.

C++
1
2
3
4
5
6
7
8
9
10
11
    vector(const _Myt& _Right)
        : _Mybase(_Right._Alval)
        {   // construct by copying _Right
        if (_Buy(_Right.size()))
            _TRY_BEGIN
            _Mylast = _Ucopy(_Right.begin(), _Right.end(), _Myfirst);
            _CATCH_ALL
            _Tidy();
            _RERAISE;
            _CATCH_END
        }
C++
1
2
3
4
5
6
    template<class _Iter>
        pointer _Ucopy(_Iter _First, _Iter _Last, pointer _Ptr)
        {   // copy initializing [_First, _Last), using allocator
        return (_STDEXT unchecked_uninitialized_copy(_First, _Last,
            _Ptr, this->_Alval));
        }
C++
1
2
3
4
5
6
7
8
9
10
template<class _InIt,
    class _FwdIt> inline
    _FwdIt unchecked_uninitialized_copy(_InIt _First, _InIt _Last,
        _FwdIt _Dest)
    {   // copy [_First, _Last) to raw _Dest
        return (_STD _Uninit_copy(_CHECKED_BASE(_First),
            _CHECKED_BASE(_Last), _Dest,
            _STD _Ptr_cat(_First, _Dest),
            _STD _Range_checked_iterator_tag()));
    }
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
template<class _Ty1,
    class _Ty2> inline
    _Ty2 _Uninit_copy(_Ty1 _First, _Ty1 _Last, _Ty2 _Dest,
        _Scalar_ptr_iterator_tag, _Range_checked_iterator_tag)
    {   // copy [_First, _Last) to raw _Dest, scalar type
    _DEBUG_RANGE(_First, _Last);
    _DEBUG_POINTER(_Dest);
    size_t _Count = (size_t)(_Last - _First);
    _Ty2 _Result = _Dest + _Count;
    if (_Count > 0)
        _CRT_SECURE_MEMMOVE(&*_Dest,
            _Count * sizeof (*_First), &*_First,
            _Count * sizeof (*_First)); // NB: non-overlapping move
    return (_Result);
    }
C++
1
#define _CRT_SECURE_MEMMOVE(dest, destsize, source, count) ::memmove_s((dest), (destsize), (source), (count))
Оп как.

Добавлено через 5 минут
accept,
то есть, чтобы просто поменять пробел, нужно переделывать блок

C++
1
[](int el) {std::cout<<' '<<el;}
это что-то вроде lambda ?
Почему же вроде? Это и есть лямбда-функция. С++0x
 
Текущее время: 13:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru