updated for presentation
This commit is contained in:
parent
b47b5c6f35
commit
530ccb5e37
@ -12,6 +12,6 @@ thang scalar = {3.14, 42};
|
|||||||
thang anArray[] = {{1.1, 1}, {2.2, 2}, {3.3, 3}};
|
thang anArray[] = {{1.1, 1}, {2.2, 2}, {3.3, 3}};
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
// vector<thang> v = { ??? } ... see init_new
|
// vector<thang> v = { ??? }
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
10
init.cc
10
init.cc
@ -1,5 +1,6 @@
|
|||||||
#include <string>
|
#include <string>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
#include <vector>
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
struct Point {
|
struct Point {
|
||||||
@ -7,7 +8,7 @@ struct Point {
|
|||||||
Point(int x, int y): x(x), y(y){}
|
Point(int x, int y): x(x), y(y){}
|
||||||
};
|
};
|
||||||
|
|
||||||
// const vector<string> v = ??;
|
// const vector<string> v = ??; // wat
|
||||||
// http://stackoverflow.com/a/4268956
|
// http://stackoverflow.com/a/4268956
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
@ -17,5 +18,12 @@ int main() {
|
|||||||
string s2 = "hello";
|
string s2 = "hello";
|
||||||
int y = 42;
|
int y = 42;
|
||||||
cout << x << " " << y << " " << endl;
|
cout << x << " " << y << " " << endl;
|
||||||
|
|
||||||
|
string names[] = {"stephen", "michael", "bryan", "derek"};
|
||||||
|
vector<string> names_v (names, names + 3);
|
||||||
|
// what is the bug here?
|
||||||
|
for(unsigned int i = 0; i < names_v.size(); i++) {
|
||||||
|
cout << names_v[i] << endl;
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
11
init_new.cc
11
init_new.cc
@ -1,6 +1,5 @@
|
|||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <map>
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
struct Point {
|
struct Point {
|
||||||
@ -13,10 +12,12 @@ const vector<string> s = {"a", "b", "c"};
|
|||||||
int main() {
|
int main() {
|
||||||
string s1 {"first"};
|
string s1 {"first"};
|
||||||
int x {42};
|
int x {42};
|
||||||
map<string, vector<int>> singers = {
|
|
||||||
{"Freddie Mercury", {100, 102, 103}},
|
vector<string> names_v = {"stephen", "michael", "bryan", "derek"};
|
||||||
{"Matt Bellamy", {100, 104, 105}},
|
|
||||||
};
|
// map example
|
||||||
|
// with nested types
|
||||||
|
|
||||||
x = 0;
|
x = 0;
|
||||||
return x;
|
return x;
|
||||||
}
|
}
|
||||||
|
@ -13,5 +13,12 @@ int main() {
|
|||||||
cout << "total: " << total << endl;
|
cout << "total: " << total << endl;
|
||||||
auto my_lambda_doubling_func = [&](int x) -> int { return x * 2; };
|
auto my_lambda_doubling_func = [&](int x) -> int { return x * 2; };
|
||||||
cout << my_lambda_doubling_func(total) << endl;
|
cout << my_lambda_doubling_func(total) << endl;
|
||||||
|
vector<int> orderme = {46, 78, 2, 75, 33, 1, 65, 48, 45, 73};
|
||||||
|
sort(orderme.begin(), orderme.end(), [](int x, int y) -> bool {
|
||||||
|
return x < y;
|
||||||
|
});
|
||||||
|
for(auto x: orderme) {
|
||||||
|
cout << x << endl;
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
17
loops.cc
17
loops.cc
@ -14,18 +14,11 @@ const vector<string> mcquays = {
|
|||||||
|
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
for(auto name: mcquays) {
|
// original with uint
|
||||||
cout << name << endl;
|
// original with iterator
|
||||||
}
|
|
||||||
|
|
||||||
vector<int> nums = { 1, 2, 3, 4, 5 };
|
vector<int> nums = { 1, 2, 3, 4, 5 };
|
||||||
for(auto & n: nums) {
|
// fix so nums is 0, 1, 2 ...
|
||||||
n--;
|
|
||||||
}
|
|
||||||
|
|
||||||
for(auto n: nums) {
|
|
||||||
cout << n << endl;
|
|
||||||
}
|
|
||||||
|
|
||||||
map<string, int> age_for_mcquay = {
|
map<string, int> age_for_mcquay = {
|
||||||
{"stephen", 31},
|
{"stephen", 31},
|
||||||
@ -34,7 +27,5 @@ int main() {
|
|||||||
{"derek", 21},
|
{"derek", 21},
|
||||||
};
|
};
|
||||||
|
|
||||||
for(auto p: age_for_mcquay) {
|
// map example:
|
||||||
cout << p.first << " " << p.second << endl;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
42
notes.rst
42
notes.rst
@ -4,26 +4,33 @@ C++11
|
|||||||
|
|
||||||
.. rubric:: oh dear, it burns
|
.. rubric:: oh dear, it burns
|
||||||
|
|
||||||
|
Intro
|
||||||
|
=====
|
||||||
|
|
||||||
- Approved 2011-08-12
|
- Approved 2011-08-12
|
||||||
- for some time called c++0x
|
- for some time called c++0x
|
||||||
- references: primarily the `wikipedia article`_ on c++11
|
- references:
|
||||||
|
- primarily the `wikipedia article`_ on c++11
|
||||||
|
- also `Bjarne's FAQ`_
|
||||||
|
|
||||||
.. _`wikipedia article`: http://en.wikipedia.org/wiki/C%2B%2B11
|
.. _`wikipedia article`: http://en.wikipedia.org/wiki/C%2B%2B11
|
||||||
|
.. _`Bjarne's FAQ`: http://www2.research.att.com/~bs/C++0xFAQ.html
|
||||||
|
|
||||||
|
|
||||||
constexpr
|
|
||||||
=========
|
|
||||||
|
|
||||||
- see example with/without -std=c++0x
|
|
||||||
- see wiki for limitations
|
|
||||||
- constructors of user-defined types can be declared constexpr
|
|
||||||
|
|
||||||
initializer lists
|
initializer lists
|
||||||
=================
|
=================
|
||||||
|
|
||||||
- see example with/without -std=c++0x
|
- see example with/without -std=c++0x; specifically in this order:
|
||||||
|
- init.cc
|
||||||
|
- ilists.cc: c++03
|
||||||
|
- init_new.cc
|
||||||
- initializer_list<>
|
- initializer_list<>
|
||||||
- constructed, copied, only by ref
|
- allows constructors to take initializer lists
|
||||||
|
|
||||||
|
New Loop Syntax
|
||||||
|
===============
|
||||||
|
- example from int, iterator, new syntax
|
||||||
|
- copy/ref
|
||||||
|
|
||||||
type inference
|
type inference
|
||||||
==============
|
==============
|
||||||
@ -41,6 +48,7 @@ new string literals
|
|||||||
tuple fun
|
tuple fun
|
||||||
=========
|
=========
|
||||||
|
|
||||||
|
- generalization of std::pair
|
||||||
- #include <tuple>
|
- #include <tuple>
|
||||||
- make_tuple
|
- make_tuple
|
||||||
- tie
|
- tie
|
||||||
@ -63,7 +71,19 @@ lambdas
|
|||||||
regular expressions and threading
|
regular expressions and threading
|
||||||
=================================
|
=================================
|
||||||
|
|
||||||
- this is where the burning starts ...
|
- this is where the burning starts to set in ...
|
||||||
|
- compile with gcc to see how awesome that is
|
||||||
|
- compile with clang
|
||||||
|
- instructions on building this found `here`_
|
||||||
|
|
||||||
|
.. _`here`: http://solarianprogrammer.com/2011/10/16/llvm-clang-libc-linux/
|
||||||
|
|
||||||
|
constexpr
|
||||||
|
=========
|
||||||
|
|
||||||
|
- see example with/without -std=c++0x
|
||||||
|
- see wiki for limitations
|
||||||
|
- constructors of user-defined types can be declared constexpr
|
||||||
|
|
||||||
rvalue
|
rvalue
|
||||||
=======
|
=======
|
||||||
|
18
tuple.cc
18
tuple.cc
@ -3,21 +3,11 @@
|
|||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
auto some_func() -> tuple<int, int> {
|
|
||||||
return make_tuple(4, 2);
|
// tuple-returning func
|
||||||
}
|
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
auto c = make_tuple(5, 4);
|
// make a tuple, get a value from it (silly <i> syntax)
|
||||||
cout << get<0>(c) << endl;
|
// swap a and b
|
||||||
|
|
||||||
int a = 0;
|
|
||||||
int b = 1;
|
|
||||||
tie(a, b) = make_tuple(b, a);
|
|
||||||
cout << a << endl;
|
|
||||||
cout << b << endl;
|
|
||||||
// get a,b from func ...
|
// get a,b from func ...
|
||||||
tie(a, b) = some_func();
|
|
||||||
cout << a << endl;
|
|
||||||
cout << b << endl;
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user