如何声明一个returns std::list 或std::list 作为参数类型的c++ 函数?
How to declare a c++ function that returns std::list or takes std::list as a parameter type?
我一直在尝试在 c++ 中创建一个函数,它接受一个列表,对其执行一些操作,然后 returns 它。但函数不会接受 std::list 作为有效的 return 类型或参数类型。
#include <iostream>
#include <list>
std::list list_function(int n, std::list progress) {
}
int main() {
/* std::list<int> test_list = {1, 2, 3, 4, 4854};
test_list.push_back(10); // some unrelated testing
for (int x : test_list) {
std::cout << x << '\n';
} */
}
我在网上找不到任何答案,我需要做什么?
std::list
是一个模板库,因此您需要一个模板参数才能将其用作类型。
例如:
#include <list>
std::list<int> list_function(int n, std::list<int> progress) {
return std::list<int>();
}
int main(void) {
std::list<int> a = list_function(10, std::list<int>());
return 0;
}
如果你想创建一个通用函数,你也可以像这样使你的函数模板化:
#include <list>
template<typename T>
std::list<T> list_function(int n, std::list<T> progress) {
return std::list<T>();
}
int main(void) {
std::list<int> a = list_function(10, std::list<int>());
std::list<double> b = list_function(10, std::list<double>());
return 0;
}
要么模板,
template <typename T>
std::list<T> list_function(int n, std::list<T> progress) {
// ...
}
或提供固定类型
std::list<int> list_function(int n, std::list<int> progress) {
// ...
}
我一直在尝试在 c++ 中创建一个函数,它接受一个列表,对其执行一些操作,然后 returns 它。但函数不会接受 std::list 作为有效的 return 类型或参数类型。
#include <iostream>
#include <list>
std::list list_function(int n, std::list progress) {
}
int main() {
/* std::list<int> test_list = {1, 2, 3, 4, 4854};
test_list.push_back(10); // some unrelated testing
for (int x : test_list) {
std::cout << x << '\n';
} */
}
我在网上找不到任何答案,我需要做什么?
std::list
是一个模板库,因此您需要一个模板参数才能将其用作类型。
例如:
#include <list>
std::list<int> list_function(int n, std::list<int> progress) {
return std::list<int>();
}
int main(void) {
std::list<int> a = list_function(10, std::list<int>());
return 0;
}
如果你想创建一个通用函数,你也可以像这样使你的函数模板化:
#include <list>
template<typename T>
std::list<T> list_function(int n, std::list<T> progress) {
return std::list<T>();
}
int main(void) {
std::list<int> a = list_function(10, std::list<int>());
std::list<double> b = list_function(10, std::list<double>());
return 0;
}
要么模板,
template <typename T>
std::list<T> list_function(int n, std::list<T> progress) {
// ...
}
或提供固定类型
std::list<int> list_function(int n, std::list<int> progress) {
// ...
}