str.begin
初始化一个容器变量data_copy,从data字符串开始到data字符串结束。
vector<char> data_copy(data.begin(), data.end());
#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main()
{
string data("Hello world!");
vector<char> data_copy(data.begin(), data.end());
cout<<data_copy[0]<<data_copy[1]<<data_copy[2]<<data_copy[3]<<data_copy[4]<<data_copy[5]<<endl;
}
创建一个匿名函数并执行,匿名函数可以用主函数的变量。
[=]引用捕获
[=]是引用捕获
#include <iostream>
using namespace std;
int main()
{
int i = 1024, j = 2048;
cout << "&j:" << &j << endl;
cout << "&i:" << &i << endl;
auto fun1 = [&]{ // 默认拷贝外部所有变量,但引用变量 i
cout << "&j:" << &j << endl;
cout << "&i:" << &i << endl;
};
fun1();
}
[]值捕获
#include <iostream>
using namespace std;
int main()
{
int i = 1024, j = 2048;
cout << "j:" << j << endl;
cout << "i:" << i << endl;
auto fun1 = [=]{ // 默认拷贝外部所有变量,但引用变量 i
cout << "j:" << j << endl;
cout << "i:" << i << endl;
};
fun1();
}
[=,&i]
#include <iostream>
using namespace std;
int main()
{
int i = 1024, j = 2048;
cout << "&j:" << &j << endl;
cout << "&i:" << &i << endl;
auto fun1 = [=,&i]{ // 默认拷贝外部所有变量,但引用变量 i
cout << "&j:" << &j << endl;
cout << "&i:" << &i << endl;
};
fun1();
}
运行结果:
&j:0x7ffdd40faa5c
&i:0x7ffdd40faa58
&j:0x7ffdd40faa68
&i:0x7ffdd40faa58