stl学习记录(2)
#include <iostream>
#include <utility>
#include <tuple>
#include <complex>
#include <string> using namespace std; // 代码 改编自 C++标准库——自学教程与参考手册 英文第二版 //====================================
// tuple io
template <int IDX,int MAX,typename... Args>
struct PRINT_TUPLE{
static void print(ostream& strm, const tuple<Args...>& t){
strm << get<IDX>(t) << (IDX + == MAX ? "" : ",");
PRINT_TUPLE<IDX + , MAX, Args...>::print(strm,t);
}
}; template <int MAX,typename... Args>
struct PRINT_TUPLE<MAX, MAX, Args...>{
static void print(ostream& strm, const tuple<Args...>& t){
}
}; template <typename... Args>
ostream& operator << (ostream& strm,
tuple<Args...>& t)
{
strm << "[";
PRINT_TUPLE<, sizeof...(Args), Args...>::print(strm,t);
return strm << "]";
} //==================================== class Foo{
public:
Foo(tuple<int, float>){
cout << "Foo::Foo(tuple)" << endl;
} template <typename... Args>
Foo(Args... args){
cout << "Foo::Foo(atgs...)" << endl;
}
}; int _tmain(int argc, _TCHAR* argv[])
{
// cpp11 后 一些新语法 在STL中得使用
tuple<int, double>t(,2.22); pair<int, Foo>p1(, t); pair<int, Foo>p2(piecewise_construct, make_tuple(), t); // 使用 ref() 表示对变量的引用
int i = ;
auto p = make_pair(ref(i), ref(i)); // 创建 pair<int&,int&>
++p.first;
++p.second;
cout << "i = " << i << endl; // tie() 演示
pair<char, char> q = make_pair('c','b');
char c;
tie(ignore, c) = q; // char c == 'b' //
tuple<string, int, int, complex<double>> tt;
tuple<int, double,string> t1(,6.3,"nico"); cout << get<>(t1) << " ";
cout << get<>(t1) << " ";
cout << get<>(t1) << " ";
cout << endl; auto t2 = make_tuple(,,"nico");
get<>(t1) = get<>(t2);
t1 = t2; // tuple io
tuple <int, double, string> iot(, 1.1, "more light");
cout << "io: " << iot << endl; return ;
}
cpp11stl的例子 VS2013下编译 通过
stl序列容器例子
cpp11 vs2013下编译 通过
#include <memory>
#include <vector>
#include <array>
#include <string>
#include <list>
#include <iostream>
#include <functional>
#include <forward_list> using namespace std; int _tmain(int argc, _TCHAR* argv[])
{
array<string, > arrcoll = { "hello", "world" };
for (auto elem : arrcoll)
{
cout << elem << ' ';
}
cout << endl; list<char> listcoll;
for (char c = 'a'; c <= 'z'; ++c)
{
listcoll.push_back(c);
} for (auto elem : listcoll)
{
cout << elem << ' ';
}
cout << endl; //createforward-listcontainerforsomeprimenumbers
forward_list<long> coll = { , , , , , , };
//resizetwotimes
//-note:poorperformance
coll.resize();
coll.resize(, );
//printallelements:
for (auto elem : coll) {
cout << elem << ' ';
}
cout << endl; return ;
}
stl学习记录(2)的更多相关文章
- stl学习记录(1)
Effective STL 中文版学习记录 条款4 判断容器是否为空 使用empty而不是size().size()操作在实现上不是一个时间常数操作条款5 尽量使用区间成员函数代替它们的单元素兄弟.S ...
- c++ STL 学习记录 草稿。
非常丑陋的尝试实现stl.慢慢修改吧. 1)简单实现 vector和list. 2)思索如何开始编写算法. 1,所有容器继承一个抽象容器.那么算法就可以使用抽象基类的next方法来遍历元素. 容器间耦 ...
- Matlab 进阶学习记录
最近在看 Faster RCNN的Matlab code,发现很多matlab技巧,在此记录: 1. conf_proposal = proposal_config('image_means', ...
- ###STL学习--函数对象
点击查看Evernote原文. #@author: gr #@date: 2014-08-13 #@email: forgerui@gmail.com 在stl中,函数对象被大量地使用,用以提高代码的 ...
- Effective STL 学习笔记 Item 30: 保证目标区间足够大
Effective STL 学习笔记 Item 30: 保证目标区间足够大 */--> div.org-src-container { font-size: 85%; font-family: ...
- Quartz 学习记录1
原因 公司有一些批量定时任务可能需要在夜间执行,用的是quartz和spring batch两个框架.quartz是个定时任务框架,spring batch是个批处理框架. 虽然我自己的小玩意儿平时不 ...
- Java 静态内部类与非静态内部类 学习记录.
目的 为什么会有这篇文章呢,是因为我在学习各种框架的时候发现很多框架都用到了这些内部类的小技巧,虽然我平时写代码的时候基本不用,但是看别人代码的话至少要了解基本知识吧,另外到底内部类应该应用在哪些场合 ...
- Apache Shiro 学习记录4
今天看了教程的第三章...是关于授权的......和以前一样.....自己也研究了下....我觉得看那篇教程怎么说呢.....总体上是为数不多的精品教程了吧....但是有些地方确实是讲的太少了.... ...
- UWP学习记录12-应用到应用的通信
UWP学习记录12-应用到应用的通信 1.应用间通信 “共享”合约是用户可以在应用之间快速交换数据的一种方式. 例如,用户可能希望使用社交网络应用与其好友共享网页,或者将链接保存在笔记应用中以供日后参 ...
随机推荐
- mvc框架路由原理
到目前为止已经使用过很多php框架,比如:Zendframework,ThinkPHP,YII,Slim.但还未静下心来研究过框架的原理. 今天首先来看一下mvc框架中路由的原理: 所谓路由,就是程序 ...
- 2.vo传参模式和ModerDriven传参模式
转自:https://wenku.baidu.com/view/84fa86ae360cba1aa911da02.html Copy上面的myStruts2项目,改名为myStruts2Vo项目.作如 ...
- 在Textbox中按回车键后继续获取焦点
textbox的值为空或没有更改时,按下回车键textbox会失去焦点 此时用textbox1.setfocus不能使textbox1重新获取焦点 Private Sub Textbox1_KeyDo ...
- 发送电子邮件模块smtplib
功能:smtplib模块是通过邮件服务器发送电子邮件,是smtp客户端的实现,支持邮件格式有:文本.HTML.Image.EXCEL等. 1 #!/usr/bin/env python 2 # cod ...
- 用R包来下载sra数据
1)介绍 我们用SRAdb library来对SRA数据进行处理. SRAdb 可以更方便更快的接入 metadata associated with submission, 包括study, sa ...
- ensembl数据库的使用方法
1)下载各种数据bam.gtf.fasta.ded等的地址 ftp://ftp.ensembl.org/../pub/release-93/
- /Library,/System/Library,~/Library
/System/library是系统级,/ Library下面面向全部用户,~/Library 限于当前用户 一般来说,很少碰/ Library,都是用到/System/library和~/lib ...
- Python vars() 函数
Python vars() 函数 Python 内置函数 描述 vars() 函数返回对象object的属性和属性值的字典对象. 语法 vars() 函数语法: vars([object]) 参数 ...
- Python print() 函数
Python print() 函数 Python 内置函数 描述 print() 方法用于打印输出,最常见的一个函数. print 在 Python3.x 是一个函数,但在 Python2.x 版本 ...
- Windows phone自定义控件(无外观控件)——FlipPanel
编码前 无外观自定义控件的定义在上一篇中已经有了,至于这一篇的自定义控件,比之前多加入了状态的变化,就像默认的Button具有Pressed.Normal等状态.在状态转变的同时可以加上一些动画,可以 ...