博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++基础知识之vector和[=] [&] [=,&]拷贝
阅读量:2383 次
发布时间:2019-05-10

本文共 3031 字,大约阅读时间需要 10 分钟。

str.begin

初始化一个容器变量data_copy,从data字符串开始到data字符串结束。

vector
data_copy(data.begin(), data.end());
#include
#include
#include
using namespace std; int main() { string data("Hello world!"); vector
data_copy(data.begin(), data.end()); cout<
<
<
<
<
<
<

创建一个匿名函数并执行,匿名函数可以用主函数的变量。

[=]引用捕获

[=]是引用捕获

#include 
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 
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 
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

参考

转载地址:http://vafab.baihongyu.com/

你可能感兴趣的文章
深入理解OAuth2.0协议
查看>>
https原理:证书传递、验证和数据加密、解密过程解析
查看>>
MySQL在大型网站的应用架构演变
查看>>
sphinx教程1__mysql sphinx引擎插件式热安装
查看>>
sphinx教程2__安装、配置和使用
查看>>
ttserver 缓存使用和过期设置
查看>>
php pconnect 长连接原理
查看>>
php memcached使用中的坑
查看>>
php变量引用和计数_refcount_gc和is_ref_gc
查看>>
windows环境下php和Php扩展编译,扩展dll文件编译
查看>>
magento 验证码
查看>>
magento性能优化系列二:db篇
查看>>
Discuz!$_G变量的使用方法
查看>>
magento memcache缓存配置
查看>>
PHP json_encode中文乱码解决方法
查看>>
mysql服务启动、关闭
查看>>
php获取中文字符串的首字符拼音字母
查看>>
php curl通过代理获取数据
查看>>
6 个 Linux性能监控命令行工具
查看>>
mysql 编码字符集配置
查看>>