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

Сложение элементов двух векторов с записью в третий - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Не могу найти простую ошибку. Склеивает строки http://www.cyberforum.ru/cpp-beginners/thread1133433.html
Привет. Программа выводит всю информацию правильно, но последние две строки не так как нужно. В переменную state записывается почему то и state и данные переменной zip. На экран выводится два раза информация из переменной zip. Первый раз в приклееном к state виде, второй раз нормально. #include <cstdlib> #include <iostream> #include <cstring> using namespace std; class addr {
C++ Не перезагружает "+" как я хочу Захотел что бы вот так действовал плюс riad CB1("asd"),CB2("dsa"),CB3("dsw"); riad aaa = CB1 + CB2; ааа == 9 в идеале это хотел увидеть... Посмотрел примерчики вот сделал так.. riad riad::operator+(const riad &R){ riad asd; asd.stroka= stroka.size + R.stroka.size; return asd; } http://www.cyberforum.ru/cpp-beginners/thread1133389.html
C++ 20 цифр и букв, выводятся 2 столбца, в одном буквы, в другом цифры
20 цифр и букв, выводятся 2 столбца, в одном буквы, в другом цифры код: #include "stdafx.h" #include <iostream> using namespace std; int _tmain(int argc, _TCHAR* argv) {
C++ Как реализовать ввод и чисел и символов одновременно?
1. Как реализовать ввод и чисел и символов одновременно в одномерном массиве? 2. Как реализовать проверку на однократный ввод для чисел и символв? То есть ввел 1 потом еще раз ввел 1 и должно выскочить сообщение об ошибке. Буду очень благодарен.
C++ Таблица в 4 столбика http://www.cyberforum.ru/cpp-beginners/thread1133352.html
Собственно вот программа, по подсчету синуса, синуса по ряду Тейлора и разницы. Все это нужно вывести в таблице в 4 столбика. Не знаю как организовать вывод таблицы. Помогите) #include <iostream> #include <windows.h> #include <math.h> using namespace std; int main() {
C++ Структура в шаблоне класса Есть у меня класс бинарного поискового дерева. В нем описана структура TreeNode элемента дерева. template <typename T= int> class Tree { private: struct TreeNode { T info; TreeNode *left, *right; подробнее

Показать сообщение отдельно
Melg
416 / 152 / 62
Регистрация: 23.09.2013
Сообщений: 306
30.03.2014, 02:15     Сложение элементов двух векторов с записью в третий
По поводу указателя ситуация обстоит следующим образом:

C++
1
vector<T> *addition_result_vector = 0;
Создается временный объект типа указатель на vector<T>. Время жизни этого объекта ограничено
C++
1
2
3
{ // scope - областью видимости объекта.
 
}
, он в данный момент указывает на адрес 0.
Этот объект занимает в памяти для 32-битной версии программы 8 байт и может хранить в себе адрес ячейки памяти, чтото вроде 0x8f7d008 - например.
Далее в конце функции вызывается
C++
1
return addition_result_vector;
При том что в объявлении шаблонной функции было указано, что функция возвращает указатель на объект типа vector по значению:
C++
1
2
template<class T> vector<T> * addition_of_vectors(vector<T>& first_vector,
        vector<T>& second_vector)
Таким образом при вызове return - адрес 0x8f7d008 скопируется rvalue переменную, время жизни которой ограничено непосредственным местом вызова функции:
C++
1
2
std::vector<int> *pointer_to_addition_result_vector = /* Вот тут она проживет ровно до точки с запятой*/ addition_of_vectors(
            first_integer_vector, second_integer_vector);
Но поскольку мы вызываем оператор присваивания = - то значение адреса будет уже скопировано в
переменную std::vector<int> *pointer_to_addition_result_vector - которая была объявлена в функции main и время жизни которой ограничено областью видимости внутри main функции. Таким образом - валидная память - за счет того, что объект был выделен в куче оператором new была передана в валидный указатель - с которым далее и идёт работа.
 
Текущее время: 19:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru