01/10/2018, 14:43

Cách truyền nhiều tham số vào 1 hàm c++

Các anh/chị cho em hỏi là làm như thế nào đề truyền nhiều tham số vào 1 hàm vậy ạ?
Kiểu như là nó không bị giới hạn bởi 1 hay 2 tham số mà mình muốn truyền bao nhiêu cũng được ạ, =-=’

E cảm ơn nhiều =-=’

HK boy viết 16:51 ngày 01/10/2018

Bạn phải dùng C++11.

Đọc link này xem:

http://codeforces.com/blog/entry/15643

rogp10 viết 16:55 ngày 01/10/2018

C++ có vararg nhưng ko truyền tham biến được.

Florastamine viết 16:49 ngày 01/10/2018

Có thể dùng std::initializer_list<>, variadic template arguments, fold expressions, hoặc variadic arguments. Cách cuối ít được khuyến khích nhất (theo mình).

C++17 với fold expression

#include <iostream>

template <typename... T> void foo(T &&... t)
{
	((std::cout << t << ' '), ...) << std::endl;
}

int main()
{
	foo(1, 2, 3, 42, 6.66, "Chicago", "Whistler", "Neptune");
}

C++11 với std::initializer_list<>

#include <initializer_list>

template <typename T>
void foo(const std::initializer_list<T> &il)
{
	for (const auto &&a : il)
		std::cout << a << '\n';
	std::cout << std::flush;
}

int main()
{
	foo<int>({1, 2, 3, 4, 5, 6});
	foo<const char *>({"New York", "Chicago", "Dallas", "Pennsylvania"});
}
Nguyễn Minh Đức viết 16:46 ngày 01/10/2018

vậy nếu mình muốn truyền nhiều tham chiếu vào hàm thì làm như thế nào ạ? =-=’

Dark.Hades viết 16:56 ngày 01/10/2018

Thì ngay tại phần tham biến bạn thêm & là được rồi. C++ căn bản mà :-ss

Nguyen Kien viết 16:51 ngày 01/10/2018

Câu này mình đã hỏi một lập trình viên C++ ở Cốc Cốc anh ý trả lời là truyền struct vào hàm nha

*grab popcorn* viết 16:52 ngày 01/10/2018

A post was merged into an existing topic: Topic chứa các reply được cho là off-topic - version 2

Dark.Hades viết 16:53 ngày 01/10/2018

@kienonline19

Kiểu như là nó không bị giới hạn bởi 1 hay 2 tham số mà mình muốn truyền bao nhiêu cũng được ạ, =-=’

Nếu là struct thì bạn sẽ rất vất vả khi thêm một đối tượng mới, tuy nhiên nhàn ở khoản dữ liệu động.

Bài liên quan
0