gpt4 book ai didi

C++ 检查元素是否为 std::vector

转载 作者:太空宇宙 更新时间:2023-11-03 10:32:24 29 4
gpt4 key购买 nike

我想遍历一个 vector 并检查元素是 vector 还是字符串。我还需要一种方法将不同的 vector 传递给一个函数。像这样:

using namespace std;
string toCustomString(<some vector> vec) {
string ret = "";
for(size_t i = 0; i < vec.length(); ++i)
if (vec[i] == %vector%)
ret += toCustomString(vec[i]);
else //if type of vec[i] is string
ret += "foo"+vec[i]+"bar";
}
return ret;
}
  • 好吧,首先我需要知道如何正确检查 vec[i] 是否为 std::vector

  • 然后我需要知道如何定义函数的参数以接受任何类型的(多维) vector

最佳答案

std::vector只能包含一种类型 - 即 Tstd::vector<T> , 可以通过成员(member) value_type 访问.

您可能正在寻找的是模板特化:

template<typename T>
string toCustomString(std::vector<T> vec) {
// general case
}

template<>
string toCustomString<std::string>(std::vector<std::string> vec) {
// strings
}

(如果你想在所有 vector 上部分特化它,那么你需要将它提升为一个结构)

如果你真的想在 vector 中存储字符串和 vector ,那么看看 Boost.Variant 和 Boost.Any

关于C++ 检查元素是否为 std::vector,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12957506/

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