Monthly ArchiveJanuary 2010



C++ 31 Jan 2010 23:46:43

Snippet: Sort Unique Vector

//tinodidriksen.com/uploads/code/cpp/sort-unique-vector.cpp

#include <vector>
#include <iostream>
#include <algorithm>

int main() {
    std::vector<int> 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 << vec1.size() << std::endl;
    std::cout << vec1[0] << vec1[1] << vec1[2] << std::endl;
}

C++ 31 Jan 2010 23:37:58

Snippet: Vector to Output Stream

//tinodidriksen.com/uploads/code/cpp/vector-to-ostream.cpp

#include <ostream>
#include <iostream>
#include <vector>

template<typename T>
std::ostream& operator<<(std::ostream& stm, const std::vector<T>& obj) {
    stm << "[";
    if (!obj.empty()) {
        for (size_t i = 0 ; i<obj.size()-1 ; ++i) {
            stm << obj[i] << ",";
        }
        stm << obj.back();
    }
    stm << "]";
    return stm;
}

int main() {
    std::vector<int> vec;
    vec.push_back(1);
    vec.push_back(2);
    vec.push_back(3);
    vec.push_back(2);
    vec.push_back(5);
    vec.push_back(6);
    vec.push_back(1);
    std::cout << vec << std::endl;
}

C++ 31 Jan 2010 23:35:20

Snippet: Custom Type to Output Stream

//tinodidriksen.com/uploads/code/cpp/custom-to-ostream.cpp

#include <ostream>
#include <iostream>
#include <string>

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

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

int main() {
    Custom cst;
    cst.m_str = "waffles";
    std::cout << cst << std::endl;
}

C++ 31 Jan 2010 23:31:34

Snippet: Convert String to Hex

//tinodidriksen.com/uploads/code/cpp/string-to-hex.cpp

#include <string>
#include <sstream>
#include <iostream>
#include <iomanip>

int main() {
    std::string str("abcABC123\xff\x01");
    std::stringstream ss;
    for (size_t i=0 ; i<str.length() ; ++i) {
        ss << std::setw(2) << std::setfill('0')
            << std::hex << (int(str[i])&0xFF);
    }
    std::cout << ss.str();
}

C 31 Jan 2010 23:29:24

Snippet: Convert Hex to Text

//tinodidriksen.com/uploads/code/c/hex-to-text.c

#include <stdlib.h>
#include <stdio.h>
#include <string.h>

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

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

    char *result = (char*)malloc(len/2 + 1);
    memset(result, 0, len/2 + 1);
    for (size_t i = 0 ; i < len/2 ; ++i) {
        char tmp[3] = {buf[i*2], buf[i*2+1], 0};
        result[i] = (char)strtol(tmp, NULL, 16);
    }

    printf("%s converted to %s\n", buf, result);
    free(result);

    return 0;
}

Next Page »