summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--c++.html.markdown57
1 files changed, 51 insertions, 6 deletions
diff --git a/c++.html.markdown b/c++.html.markdown
index 6b81f95f..290633f3 100644
--- a/c++.html.markdown
+++ b/c++.html.markdown
@@ -7,6 +7,7 @@ contributors:
- ["Geoff Liu", "http://geoffliu.me"]
- ["Connor Waters", "http://github.com/connorwaters"]
- ["Ankush Goyal", "http://github.com/ankushg07"]
+ - ["Jatin Dhankhar", "https://github.com/jatindhankhar"]
lang: en
---
@@ -1005,7 +1006,7 @@ cin>>val;
Vector_name.push_back(val); // will push the value of variable into array
// To iterate through vector, we have 2 choices
-// using normal looping
+// using normal looping
for(int i=0; i<Vector_name.size(); i++)
// It will iterate through the vector from index '0' till last index
@@ -1020,7 +1021,7 @@ var= vector_name[index]; //will assign value at that index to var
// Set
// Sets are containers that store unique elements following a specific order
-// Very useful container to store unique values in sorted order
+// Very useful container to store unique values in sorted order
// without any other functions or code
#include<set> // Will include the header file for sets
@@ -1031,7 +1032,7 @@ ST.insert(20); // Will insert the value 20 in set ST
ST.insert(30); // Will insert the value 30 in set ST
// Now elements of sets are as follows
// 10 20 30
-
+
// To erase an element
ST.erase(20); // Will erase element with value 20
// Set ST: 10 30
@@ -1041,7 +1042,7 @@ for(it=ST.begin();it<ST.end();it++)
{
cout<<*it<<endl;
}
-// OUTPUT:
+// OUTPUT:
// 10
// 30
@@ -1064,11 +1065,11 @@ mymap.insert ( pair<char,int>('A',1) );
mymap.insert ( pair<char,int>('Z',26) );
// Will insert value 26 for key Z
-// To iterate
+// To iterate
map<char,int>::iterator it;
for (it=mymap.begin(); it!=mymap.end(); ++it)
std::cout << it->first << "->" << it->second <<'\n';
-// Output:
+// Output:
// A->1
// Z->26
@@ -1078,6 +1079,50 @@ cout<<it->second;
// OUTPUT: 26
+///////////////////////////////////
+// Logical and Bitwise operators
+//////////////////////////////////
+
+// Most of the operators in C++ are same as in other languages
+
+// Logical operators
+
+// C++ uses Short - circuit evaluation for boolean expressions, i.e, the second argument is executed or
+// evaluated only if the first argument does not suffice to determine the value of the expression
+
+true && false // Performs **logical and** to yield false
+true || false // Performs **logical or** to yield true
+! true // Performs **logcical not** to yield
+
+// Instead of using symbols equivalent keywords can be used
+true and false // Performs **logical and** to yield false
+true or false // Performs **logical or** to yield true
+not true // Performs **logcical not** to yield
+
+// Bitwise operators
+
+// **<<** Left Shift Operator
+// << shifts bits to the left
+4 << 1 // Shifts bits of 4 to left by 1 to give 8
+// x << n can be thought as x * 2^n
+
+
+// **>>** Right Shift Operator
+// << shifts bits to the right
+4 >> 1 // Shifts bits of 4 to right by 1 to give 2
+// x << n can be thought as x / 2^n
+
+~4 // Performs a bitwise not
+4 | 3 // Performs bitwise or
+4 & 3 // Performs bitwise and
+4 ^ 3 // Performs bitwise xor
+
+// Equivalent keywords are
+compl 4 // Performs a bitwise not
+4 bitor 3 // Performs bitwise or
+4 bitand 3 // Performs bitwise and
+4 xor 3 // Performs bitwise xor
+
```
Further Reading: