01/10/2018, 01:00
Hỏi về hàm advance trong C++?
Hi mọi người,
Hôm nay mình có đọc 1 reference về list trên trang CPlusPlus (link)
Thì họ có 1 đoạn code như sau:
// erasing from list
#include <iostream>
#include <list>
int main ()
{
std::list<int> mylist;
std::list<int>::iterator it1,it2;
// set some values:
for (int i=1; i<10; ++i) mylist.push_back(i*10);
// 10 20 30 40 50 60 70 80 90
it1 = it2 = mylist.begin(); // ^^
advance (it2,6); // ^ ^
++it1; // ^ ^
it1 = mylist.erase (it1); // 10 30 40 50 60 70 80 90
// ^ ^
it2 = mylist.erase (it2); // 10 30 40 50 60 80 90
// ^ ^
++it1; // ^ ^
--it2; // ^ ^
mylist.erase (it1,it2); // 10 30 60 80 90
// ^
std::cout << "mylist contains:";
for (it1=mylist.begin(); it1!=mylist.end(); ++it1)
std::cout << ' ' << *it1;
std::cout << '
';
return 0;
}
Mình có thắc mắc là không biết cái hàm advance()
ở đâu ra, vì khi viết thử hàm này lên VS2015 thì nó không có hàm nào như thế cả:
Nhìn qua thì biết hàm đó dịch vị trí con trỏ iterator it2
đến 6 nhưng trong VS2015 lại không có hàm này ! (hay có thư viện riêng hỗ trợ cho nó nhỉ ?)
Giúp mình nhé !
Cảm ơn mọi người
Bài liên quan
Bạn thêm
#include <iterator>
xem được khôngSearch advance c++ là ra ngay ấy mà :v
http://en.cppreference.com/w/cpp/iterator/advance
@sanegan199x @david15894 Ừm, mà sao cái example code của CPlusPlus mình post ở trên nó lại không
#include <iterator>
nhỉ ?