Да.Элементы всегда копируются в или из контейнеров STL.(По крайней мере до тех пор, пока семантика перемещения не будет добавлена в C ++ 0x)
РЕДАКТИРОВАТЬ: Вот как вы можете проверить себя на копирование:
#include <vector>
#include <iostream>
class CopyChecker
{
public:
CopyChecker()
{
std::cout << "Hey, look! A new copy checker!" << std::endl;
}
CopyChecker(const CopyChecker& other)
{
std::cout << "I'm the copy checker! No, I am! Wait, the"
" two of us are the same!" << std::endl;
}
~CopyChecker()
{
std::cout << "Erroap=02-0304-231~No Carrier" << std::endl;
}
};
int main()
{
std::vector<CopyChecker> doICopy;
doICopy.push_back(CopyChecker());
}
Вывод должен быть:
Эй, смотри!Новая копия проверки!
Я копия проверки!Нет, я!Подождите, мы оба одинаковы!
Erroap = 02-0304-231 ~ Нет носителя
Erroap = 02-0304-231 ~ Нет носителя