下午写了一份代码:

#include <iostream>

using namespace std;

// 模板1:交换基本类型的值
template<typename T>
void swap(T &a, T &b); //模板2:交换两个数组
template<typename T, unsigned N>
void swap(T (&a)[N], T(&b)[N]); //模板3:打印数组元素
template<typename T, unsigned N>
void printArray(T (&arr)[N]); int main() { int m = , n = ;
swap(m,n); cout<<m<<", "<<n<<endl; // 交换两个数组
int a[] = {,,,,};
int b[] = {,,,,};
swap(a,b); // 匹配模板2 // 打印数组
printArray(a);
printArray(b); return ;
} template<typename T>
void swap(T &a, T &b) {
T tmp = a;
a = b;
b = tmp;
} template<typename T, unsigned N>
void swap(T (&a)[N], T(&b)[N]) {
T tmp;
for (int i= ; i<N;i++) {
tmp = a[i];
a[i] = b[i];
b[i] = tmp;
}
} template<typename T, unsigned N>
void printArray(T (&arr)[N]) {
for (int i = ;i<N;i++) {
if (i == N - ) {
cout<<arr[i]<<endl;
} else {
cout<<arr[i]<<", ";
}
}
}

编译死活通不过,老是报如下错误:

后来只能求助万能的Google,结果原因是:

不能编译运行的原因是swap函数与标准库的std::swap函数冲突。属于调用疏忽。
解决方法1:调用时声明名字空间,把swap(a1,a2);改成::swap(a1,a2);前加::,避免冲突
解决方法2:改变函数名称,把自定义的函数swap改成swapABC或其它。

C/C++ 错误笔记-解决swap函数与标准库的std::swap函数冲突的问题的更多相关文章

  1. 【c++ Prime 学习笔记】第17章 标准库特殊设施

    17.1 tuple类型 tuple是类似pair的模板: pair和tuple的成员类型都可以不相同 pair恰好有两个成员,tuple可有任意数量的成员 按照不同参数数量和类型实例化出的tuple ...

  2. Python标准库:内置函数hasattr(object, name)

    Python标准库:内置函数hasattr(object, name) 本函数是用来判断对象object的属性(name表示)是否存在.如果属性(name表示)存在,则返回True,否则返回False ...

  3. C 和 C++ 的标准库分别有自己的 locale 操作方法,C 标准库的 locale 设定函数是 setlocale(),而 C++ 标准库有 locale 类和流对象的 imbue() 方法(gcc使用zh_CN.GBK,或者zh_CN.UTF-8,VC++使用Chinese_People's Republic of China.936或者65001.)

    转自:http://zyxhome.org/wp/cc-prog-lang/c-stdlib-setlocale-usage-note/ [在此向原文作者说声谢谢!若有读者看到文章转载时请写该转载地址 ...

  4. Python标准库-数字的处理函数(math模块)

    Python标准库-数字的处理函数(math模块) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. #!/usr/bin/env python #_*_conding:utf-8_* ...

  5. Python 2.7 学习笔记 内置语句、函数、标准库

    使用任何开发语言进行软件开发,都离不开语言提供的内置库(或Api),甚至说内置库的强大及使用是否方便都会影响大家对开发语言的选择. python语言,一样提供了很多内置的功能,可供开发时使用.主要有如 ...

  6. 《C++ Primer》学习笔记【第二部分 C++标准库】

    第8章 IO库 IO对象不能复制,即1.IO对象不能存储在vector或其他容器中   2.如果需要传递或返回IO对象,必须传递或返回指向该对象的指针或引用. 一般情况下,如果要传递IO对象以便对它进 ...

  7. python第六天 函数 python标准库实例大全

    今天学习第一模块的最后一课课程--函数: python的第一个函数: 1 def func1(): 2 print('第一个函数') 3 return 0 4 func1() 1 同时返回多种类型时, ...

  8. C++ Pirmer : 第十四章 : 重载运算符与类型转换之函数调用运算符与标准库的定义的函数对象

    函数调用运算符 struct test { int operator()(int val) const { return (i > 0 ? i : -i); } }; 所谓的函数调用就是一个类重 ...

  9. A Byte of Python 笔记(12)python 标准库:sys、os,更多内容

    第14章 python 标准库 Python标准库是随Python附带安装的,它包含大量极其有用的模块. sys 模块 sys 模块包含系统对应的功能.如 sys.argv 列表包含命令行参数. # ...

随机推荐

  1. 三.rocketmq-console

    ⦁    rocketmq-console来源于https://github.com/rocketmq/rocketmq-console 1.配置IP 2.启动运行:出现此信息则表示成功  访问:in ...

  2. IP地址网段规划

  3. Linux下解压tar.xz文件

    xz -d glib-2.14.tar.xz tar -xvf glib-2.14.tar 前面一个是将xz文件解压成tar文件,后面一个是将tar文件解压. xz使用格式:压缩: xz -z fil ...

  4. linux中backticks反引号的作用

    This is a backtick. A backtick is not a quotation sign. It has a very special meaning. Everything yo ...

  5. 2017.12.14 Mybatis物理分页插件PageHelper的使用(一)

    参考来自: http://www.360doc.com/content/15/0728/15/12642656_487954693.shtml https://www.cnblogs.com/digd ...

  6. mysql 比较隐秘的问题

    2017-11-13 13:47:27:DEBUG DubboServerHandler-192.168.30.114:20990-thread-5 com.yryz.qshop.modules.in ...

  7. SQL多表连接查询(具体实例)

    本文主要列举两张和三张表来讲述多表连接查询. 新建两张表: 表1:student  截图例如以下: 表2:course  截图例如以下: (此时这样建表仅仅是为了演示连接SQL语句.当然实际开发中我们 ...

  8. electron的安装

    1.安装 node.js https://nodejs.org/en/ 2.安装asar npm install -g asar 3.安装atom https://atom.io/ 4.安装elect ...

  9. 使用jsmin压缩javascript脚本

    官方地址:http://www.crockford.com/javascript/jsmin.html 点击页下方的”zip file containing an MS-DOS.exe file“下载 ...

  10. JBoss 系列十七:使用JGroups构建块MessageDispatcher 构建群组通信应用

    内容概要 本部分说明JGroups构建块接口MessageDispatcher,具体提供一个简单示例来说明如何使用JGroups构建块MessageDispatcher 构建群组通信应用 示例描述 构 ...