woaidongmao

文章均收录自他人博客,但不喜标题前加-[转贴],因其丑陋,见谅!~
随笔 - 1469, 文章 - 0, 评论 - 661, 引用 - 0
数据加载中……

std 容器 assign的注意之处

// testAssign.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <stdio.h>
#include <vector>
using namespace std;

int main(int argc, char* argv[])
{
    vector<int> vec_int;
    char buf[128] = {0};


    vec_int.assign(buf, buf + sizeof(buf));
    printf("size:%d\n", vec_int.size());    //---- 128


    vec_int.assign((int*)buf, (int*)(buf + sizeof(buf)));
    printf("size:%d\n", vec_int.size());    //---- 32


    return 0;
}

 

image

posted on 2009-09-17 14:44 肥仔 阅读(537) 评论(2)  编辑 收藏 引用 所属分类: Boost & STL

评论

# re: std 容器 assign的注意之处  回复  更多评论   

需要注意的是(int*)buf这个转型,而不是assign。
每写下一个转型时,问问自己“我到底在干什么”。
2009-09-17 17:18 | OwnWaterloo

# re: std 容器 assign的注意之处  回复  更多评论   

这叫什么注意啊,分明是自己搞的bug,对模版不熟悉导致的。还不删掉,继续来霍乱新手。切...
2014-02-20 09:19 | Hope

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理