コード例 #1
0
ファイル: Source.cpp プロジェクト: peter1591/hearthstone-ai
static void test6()
{
	auto vec1_ptr = new CloneableContainers::PtrVector<Wrap2_Base*>();
	CloneableContainers::PtrVector<Wrap2_Base*>& vec1 = *vec1_ptr;

	auto token1 = vec1.PushBack(std::unique_ptr<Wrap2_Base>(new Wrap2(40007)));
	for (auto it = vec1.GetFirst(); !vec1.ReachedEnd(it); vec1.StepNext(it)) {
		PrintPointerInfo(vec1.Get(it));
	}

	std::cout << "==" << std::endl;
	auto token2 = vec1.PushBack(std::unique_ptr<Wrap2_Base>(new Wrap2(3004005)));
	for (auto it = vec1.GetFirst(); !vec1.ReachedEnd(it); vec1.StepNext(it)) {
		PrintPointerInfo(vec1.Get(it));
	}

	std::cout << "==" << std::endl;
	auto vec2 = vec1;
	for (auto it = vec1.GetFirst(); !vec1.ReachedEnd(it); vec1.StepNext(it)) {
		PrintPointerInfo(vec1.Get(it));
	}
	for (auto it = vec2.GetFirst(); !vec2.ReachedEnd(it); vec2.StepNext(it)) {
		PrintPointerInfo(vec2.Get(it));
	}

	std::cout << "==" << std::endl;
	delete vec1_ptr;
	for (auto it = vec2.GetFirst(); !vec2.ReachedEnd(it); vec2.StepNext(it)) {
		PrintPointerInfo(vec2.Get(it));
	}
}
コード例 #2
0
GeometryInstanceIterator::GeometryInstanceIterator(Scene *s)
  : m_scene(s)
  , m_instIdx(0)
  , m_batchIdx(0)
  , m_currentMesh(NULL)
{
	if( IsValid() && GetMesh()->GetBatchCount() == 0 )
	{
		StepNext();
	}
}
コード例 #3
0
ファイル: Source.cpp プロジェクト: peter1591/hearthstone-ai
static void test1()
{
	auto vec1 = std::make_unique<CloneableContainers::Vector<std::string>>();

	auto token1_1 = vec1->PushBack("item1");
	auto token1_2 = vec1->PushBack("item2");

	std::cout << "==" << std::endl;
	std::cout << "token1_1 = " << vec1->Get(token1_1) << std::endl;
	std::cout << "token1_2 = " << vec1->Get(token1_2) << std::endl;

	for (auto it = vec1->GetFirst(); !vec1->ReachedEnd(it); vec1->StepNext(it)) {
		std::cout << "Iterated vec1: " << vec1->Get(it) << std::endl;
	}

	std::cout << "==" << std::endl;
	auto vec2 = *vec1;
	auto token2_1 = token1_1;
	auto token2_2 = token1_2;
	std::cout << "token1_1 = " << vec1->Get(token1_1) << std::endl;
	std::cout << "token1_2 = " << vec1->Get(token1_2) << std::endl;
	std::cout << "token2_1 = " << vec2.Get(token2_1) << std::endl;
	std::cout << "token2_2 = " << vec2.Get(token2_2) << std::endl;
	for (auto it = vec1->GetFirst(); !vec1->ReachedEnd(it); vec1->StepNext(it)) {
		std::cout << "Iterated vec1: " << vec1->Get(it) << std::endl;
	}
	for (auto it = vec2.GetFirst(); !vec2.ReachedEnd(it); vec2.StepNext(it)) {
		std::cout << "Iterated vec2: " << vec2.Get(it) << std::endl;
	}

	std::cout << "==" << std::endl;
	vec1.reset();
	std::cout << "token2_1 = " << vec2.Get(token2_1) << std::endl;
	std::cout << "token2_2 = " << vec2.Get(token2_2) << std::endl;
	for (auto it = vec2.GetFirst(); !vec2.ReachedEnd(it); vec2.StepNext(it)) {
		std::cout << "Iterated vec2: " << vec2.Get(it) << std::endl;
	}

}
コード例 #4
0
ファイル: Source.cpp プロジェクト: peter1591/hearthstone-ai
static void test3()
{
	CloneableContainers::RemovableVector<std::string> vec1;

	auto token1 = vec1.PushBack("first");
	auto token2 = vec1.PushBack("second");

	for (auto it = vec1.GetFirst(); !vec1.ReachedEnd(it); vec1.StepNext(it)) {
		std::cout << "Iterated vec1: " << *vec1.Get(it) << std::endl;
	}

	std::cout << "==" << std::endl;
	auto token3 = vec1.PushBack("third");
	for (auto it = vec1.GetFirst(); !vec1.ReachedEnd(it); vec1.StepNext(it)) {
		std::cout << "Iterated vec1: " << *vec1.Get(it) << std::endl;
	}

	auto vec2 = vec1;

	std::cout << "==" << std::endl;
	vec1.Remove(token2);
	std::cout << "get a removed token: " << vec1.Get(token2) << std::endl;
	std::cout << "get the token from copied container: " << *vec2.Get(token2) << std::endl;
	for (auto it = vec1.GetFirst(); !vec1.ReachedEnd(it); vec1.StepNext(it)) {
		std::cout << "Iterated vec1: " << *vec1.Get(it) << std::endl;
	}

	std::cout << "==" << std::endl;
	vec1.PushBack("forth");
	for (auto it = vec1.GetFirst(); !vec1.ReachedEnd(it); vec1.StepNext(it)) {
		std::cout << "Iterated vec1: " << *vec1.Get(it) << std::endl;
	}

	std::cout << "==" << std::endl;
	for (auto it = vec2.GetFirst(); !vec2.ReachedEnd(it); vec2.StepNext(it)) {
		std::cout << "Iterated vec2: " << *vec2.Get(it) << std::endl;
	}
}