gpt4 book ai didi

c++ - 获取保证适用于通过不同类型的 vector 进行索引的 size_type

转载 作者:太空宇宙 更新时间:2023-11-04 16:24:09 27 4
gpt4 key购买 nike

假设我有两种类型,Class1Class2 .然后我创建两个 vector :

vector<Class1> vec1;
vector<Class2> vec2;
//create vec1 and vec2, such that both have the same number of elements
for (vector<Class1>::size_type i=0; i!=vec1.size(); ++i) {
c1 = vec1[i];
c2 = vec2[i]; //BAD?
//do something
}

你大概明白了。在这种情况下依赖 size_type 不是很糟糕吗?对于 vector<Class2>vector<Class1> 的相同?

在这些情况下,您有两个包含不同类型对象的相同大小的 vector ,但它们之间的相关性足以保证循环遍历它们,如何解决这个问题?

我知道我不太可能达到足够高的整数而遇到问题,但我仍然想编写良好、健壮的 C++ 代码。也许我应该看看这两个 size_type s 并取其中的最小值?那是要走的路吗?对我来说这听起来像是一种奇怪的做法。

最佳答案

std::allocatorsize_type 定义为 size_t,因此您可以假设 size_type size_t iif 您可以保证没有自定义分配器为其 size_type 定义不同的类型。

但是,您冒着有人稍后回来并添加可能与此假设不兼容的自定义分配器的风险。

关于c++ - 获取保证适用于通过不同类型的 vector 进行索引的 size_type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13730704/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com