<?xml version="1.0" encoding="UTF-8"?><!-- generator="WordPress/2.9.2" -->
<rss version="0.92">
<channel>
	<title>A howl on the wind...</title>
	<link>http://tinodidriksen.com</link>
	<description>The words and ideas of Tino Didriksen</description>
	<lastBuildDate>Fri, 05 Mar 2010 23:30:38 +0000</lastBuildDate>
	<docs>http://backend.userland.com/rss092</docs>
	<language>en</language>
	
	<item>
		<title>C++ Convert String to Int Speed</title>
		<description><![CDATA[(There is also an opposite int-to-string performance test.)
A performance benchmark of which method is faster of converting an std::string to an integer. The goal is ending up with an integer with the value represented in an std::string.
The tested methods are:

atoi()
atol()
strtol()
std::stringstream
std::stringstream, reusing the object
boost::lexical_cast&#60;int&#62;()
a hand-written naive loop

Source for the test is at speed-string-to-int.cpp with cycle.h.
The compilers [...]]]></description>
		<link>http://tinodidriksen.com/2010/02/16/cpp-convert-string-to-int-speed/</link>
			</item>
	<item>
		<title>C++ Convert Int to String Speed</title>
		<description><![CDATA[(There is also an opposite string-to-int performance test.)
(Updated 2010-03-05 to compare speeds of reusing the string object versus not, and to add strstream and boost::spirit::karma tests.)
A performance benchmark of which method is faster of converting an integer to an std::string. The goal is ending up with an std::string representation of the input integer.
The tested methods [...]]]></description>
		<link>http://tinodidriksen.com/2010/02/07/cpp-convert-int-to-string-speed/</link>
			</item>
	<item>
		<title>C++ Find Unique Elements Speed</title>
		<description><![CDATA[A performance benchmark of which method is faster of finding all unique elements of a vector. The goal is having an ordered container with just the unique elements, where the tested methods are std::sort()+std::unique()+erase(), versus inserting into a separate std::set, versus inserting into std::unordered_set and then into std::set, and finally inserting into boost::unordered_set and then [...]]]></description>
		<link>http://tinodidriksen.com/2010/02/02/cpp-find-unique-elements-speed/</link>
			</item>
	<item>
		<title>Snippet: Dynamic Box of Strings</title>
		<description><![CDATA[http://tinodidriksen.com/uploads/code/cpp/dynamic-string-box.cpp

#include &#60;iostream&#62;
#include &#60;algorithm&#62;
#include &#60;string&#62;
#include &#60;vector&#62;

int main() {
    std::vector&#60;std::string&#62; strs;
    strs.push_back("Hello World!");
    strs.push_back("This is a text line.");
    strs.push_back("Shorter line.");

    size_t maxl = 0;
    for (size_t i = 0 ; i&#60;strs.size() ; ++i) {
      [...]]]></description>
		<link>http://tinodidriksen.com/2010/02/01/snippet-dynamic-box-of-strings/</link>
			</item>
	<item>
		<title>Snippet: Sort Unique Vector</title>
		<description><![CDATA[http://tinodidriksen.com/uploads/code/cpp/sort-unique-vector.cpp

#include &#60;vector&#62;
#include &#60;iostream&#62;
#include &#60;algorithm&#62;

int main() {
    std::vector&#60;int&#62; vec1;
    vec1.push_back(1);
    vec1.push_back(2);
    vec1.push_back(3);
    vec1.push_back(1);
    vec1.push_back(2);
    vec1.push_back(3);
    vec1.push_back(1);

    std::sort(vec1.begin(), vec1.end());
    vec1.erase(std::unique(vec1.begin(), vec1.end()), vec1.end());

    std::cout &#60;&#60; [...]]]></description>
		<link>http://tinodidriksen.com/2010/01/31/snippet-sort-unique-vector/</link>
			</item>
	<item>
		<title>Snippet: Vector to Output Stream</title>
		<description><![CDATA[http://tinodidriksen.com/uploads/code/cpp/vector-to-ostream.cpp

#include &#60;ostream&#62;
#include &#60;iostream&#62;
#include &#60;vector&#62;

template&#60;typename T&#62;
std::ostream&#038; operator&#60;&#60;(std::ostream&#038; stm, const std::vector&#60;T&#62;&#038; obj) {
    stm &#60;&#60; "[";
    if (!obj.empty()) {
        for (size_t i = 0 ; i&#60;obj.size()-1 ; ++i) {
            stm &#60;&#60; obj[i] &#60;&#60; [...]]]></description>
		<link>http://tinodidriksen.com/2010/01/31/snippet-vector-to-output-stream/</link>
			</item>
	<item>
		<title>Snippet: Custom Type to Output Stream</title>
		<description><![CDATA[http://tinodidriksen.com/uploads/code/cpp/custom-to-ostream.cpp

#include &#60;ostream&#62;
#include &#60;iostream&#62;
#include &#60;string&#62;

struct Custom {
    std::string m_str;
    friend std::ostream&#038; operator&#60;&#60;(const std::ostream&#038; stm,
        const Custom&#038; obj);
};

std::ostream&#038; operator&#60;&#60;(std::ostream&#038; stm, const Custom&#038; obj) {
    stm &#60;&#60; obj.m_str;
    return stm;
}

int main() {
    Custom cst;
   [...]]]></description>
		<link>http://tinodidriksen.com/2010/01/31/snippet-custom-type-to-output-stream/</link>
			</item>
	<item>
		<title>Snippet: Convert String to Hex</title>
		<description><![CDATA[http://tinodidriksen.com/uploads/code/cpp/string-to-hex.cpp

#include &#60;string&#62;
#include &#60;sstream&#62;
#include &#60;iostream&#62;
#include &#60;iomanip&#62;

int main() {
    std::string str("abcABC123\xff\x01");
    std::stringstream ss;
    for (size_t i=0 ; i&#60;str.length() ; ++i) {
        ss &#60;&#60; std::setw(2) &#60;&#60; std::setfill('0')
            &#60;&#60; std::hex &#60;&#60; (int(str[i])&#038;0xFF);
 [...]]]></description>
		<link>http://tinodidriksen.com/2010/01/31/snippet-convert-string-to-hex/</link>
			</item>
	<item>
		<title>Snippet: Convert Hex to Text</title>
		<description><![CDATA[http://tinodidriksen.com/uploads/code/c/hex-to-text.c

#include &#60;stdlib.h&#62;
#include &#60;stdio.h&#62;
#include &#60;string.h&#62;

int main() {
    char buf[] = "54657374";
    size_t len = strlen(buf);

    if (len &#038; 1) {
        printf("Cannot take hex from odd length string.\n");
        exit(1);
    }

  [...]]]></description>
		<link>http://tinodidriksen.com/2010/01/31/snippet-convert-hex-to-text/</link>
			</item>
	<item>
		<title>Snippet: Pointer Usage: Polymorphism</title>
		<description><![CDATA[http://tinodidriksen.com/uploads/code/cpp/pointer-polymorphism.cpp

#include &#60;iostream&#62;

struct A {
    virtual void foo() {
        std::cout &#60;&#60; "A::foo()" &#60;&#60; std::endl;
    }
};

struct B : public A {
    void foo() {
        std::cout &#60;&#60; "B::foo()" &#60;&#60; std::endl;
    }
};

int main() [...]]]></description>
		<link>http://tinodidriksen.com/2010/01/31/snippet-pointer-usage-polymorphism/</link>
			</item>
</channel>
</rss>
