std copy



Автор Маша Не-скажу задал вопрос в разделе Другие языки и технологии

Что в этой операции означает "+" ? (язык С)
std::copy(Vector_1,Vector_1+Size,Vector_2); и получил лучший ответ

Ответ от Николай[гуру]
просто сложение

Ответ от FeOs[гуру]
что в предложении 2+1 означает "+" С первого класса никто ответить толком не может. А Я так мучаюсь! Я всю жизнь потратил на это. Даж купил кучу книг, начиная от " "+" для чайников" и заканчивая книгой " "+" - как мировоздание человечества"... ПОМОГИИИИТЕЕЕЕЕ!

Ответ от Krab Вark[гуру]
Плюс означает конкатенацию, если тебе это поможет (в просторечии называемую сложением, так как для нее используется знак +). То есть приписывание к одной строке другой строки.

Ответ от Psevdonim[гуру]
Вообще-то должно быть так:
std::copy(Vector_1.begin(),Vector_1.begin()+Size,Vector_2.begin()) ;
Vector_1.begin()+Size означает "итератор, указывающий на Size-ый элемент вектора", если Size == Vector_1.size(), то он равен Vector_1.end()

Ответ от Ёыроежка[гуру]
Во-первых, это не С, а С++, так как в С нет пространства имен std::.
Во-вторых, std::copy - это стандартный алгоритм языка С++, позволяющий копировать последовательность.
В вашем примере не ясно, что такое Vector_1. Либо это указатель базвого типа данных, либо уто итератор вектора, либо это сам вектор. От того, что означает Vector_1 ответ может быть разным.
Итак, допустим, что Vector_1 - это указатель на массив основного типа данных или массив
Например,
int Vector_1{]
а size - это размер вашего массива.
Тогда ваше выражение написано правильно и осуществляет копирование из одного массива в другой.
std::copy(Vector_1,Vector_1+Size,Vector_2);
То есть вы из массива Vector_1 копируете все size элементов в массив Vector_2.
Это справедливо и если Vector_1 т Vector_2 - итераторы прямого доступа, например, для калсса std::vector.
Ежели это не итераторы и не указатели, а сами вектора, то надо использовать метод begin() или rbegin() для получения начального итератора для вектора.
Но скорей всего у вас это, как я уже сказал, либо указатели, либо итераторы, и выражение написано правильно
А самое главное = я не ответил на ваш вопрос! Плюс в данном выражении означает арифметику с указателями! То есть к начальному указателю Vector_1 вы прибавляете size элементов того размера, каким у вас определен тип для Vector_1.
Например, у вас есть целочисленный массив из 4 элементов
int Vector_1[ 4 ];
Тогда в вашем выражении Vector_1 будет указывать на начало массива, а Vector_1 + 4 ( в вашем примере это size) будет указывать на область памяти ЗА последним элементом массива! Тем самым вы задаете диапазон от первого элемента и до элемента, стоящим за последним элементом массива.
То есть алгоримт copy можно просто переписать
int *first = Vector_1;
int * last = Vector_1 + 4;;
for ( ; first != last; ++first )
{
Vector_2++ = first;
}
То есть это есть ничто иное, как перписывание одного массива в другой с помощью указателей!:)

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с ответами на Ваш вопрос: Что в этой операции означает "+" ? (язык С)
std::copy(Vector_1,Vector_1+Size,Vector_2);
спросили в P Funk
Передать функтор по ссылке в std::for_each
Почему обхитрить? Если нужно, то можно.
Современные плюсы (С++11) предлагают менее извращенные
подробнее...

Как создать файл *.bat или *.cmd????
В любом текстовом редакторе (notepad.exe и edit.com) даже можно в командной строке создать,
подробнее...
спросили в SAP Open
VBA excel вставка листа в excel из другой книги excel
Твой макрос работает только с текстовыми файлами
Для того, чтобы открыть в VBA книгу,
подробнее...
спросили в Котор
Нужна cmd-команда, которая будет кидать обновляемый лог-файл в папку с изменением имени файла на текущую дату и время.
в примере привел примерные команды, которые могут понадобиться, надеюсь все очевидно

set
подробнее...
Ответ от 3 ответа[гуру]
Привет! Вот еще темы с похожими вопросами:
спросили в DOS
DOS команды какие есть. Какие есть команды DOS мне сказали их больше 70. Напишите пожалуйста все комманды если знаете.
1 пуск-выполнить-набери CMD
2 в появившемся окошке набери HELP и нажми энтер
3 наслаждайся
подробнее...

Как перенести дом с помощью админки в другое место в minecraft 1.4.6??? Кто знает вот мой Skype pacec-19962011
я не помню как вырезать но знаю как копировать выделяешь 2 точки пишешь //copy и куда надо //paste
подробнее...
спросили в Другое
Как написать программу на ПК с помошью блокнота
Введите в блокноте команды:

echo off
title calculator
:start
cls
set
подробнее...

Сведение двух таблиц в одну. Excel
В каждой таблице на Лист1 и Лист2 в столбце А - код, в В - наименование, в С - количество
подробнее...
спросили в Четки String h
Объясните мне четко, как правильно использовать функцию strcpy пожалуйста! C++
Функция strcpy( char * str1, char * str2 ) копирует последовательность строки str2 в строку str1.
подробнее...

Работа со строками и символами delphi 2010
for i := 0 to Memo.Lines.Count - 1 do begin
delim := 1;
while ( not Memo1.Lines[ i ][ delim
подробнее...
спросили в Black holes Broadcom
назовите все песни гта 5 из радио станции Mirror park
Radio Mirror Park

DJ : Twin Shadow
Ведущий : Jeff Berlin
Black Strobe — Boogie
подробнее...
спросили в 340 е годы
HDMI -что это?
High-Definition Multimedia Interface (HDMI) — мультимедийный интерфейс высокой чёткости, позволяет
подробнее...
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*