可能重复:
请勿在最后一个数字后打印空格
使用逗号C++打印列表
#include <vector>
#include <iostream>
#include <sstream>
#include <boost/foreach.hpp>
using namespace std;
int main()
{
vector<int> VecInts;
VecInts.push_back(1);
VecInts.push_back(2);
VecInts.push_back(3);
VecInts.push_back(4);
VecInts.push_back(5);
stringstream ss;
BOOST_FOREACH(int i, VecInts)
{
ss << i << ",";
}
cout << ss.str();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这打印出来:1,2,3,4,5,
但是我想要:1,2,3,4,5
我怎样才能以优雅的方式实现这一目标?
我看到我对"优雅"的含义有些困惑:例如,我的循环中没有减慢"if-clause"的速度.想象一下向量中的100.000个条目!如果这就是你要提供的全部内容,我宁愿在完成循环后删除最后一个逗号.
我是一名C++程序员偶尔使用MySQL来处理数据库,但我的SQL知识相当有限.但我肯定愿意改变这一点.
目前我正在尝试对数据库中的数据进行分析(!),仅使用SQL查询.但我即将放弃,而是将数据导入C++并使用C++代码进行分析.
我和我的同事讨论过这个问题,他们也让我使用C++,说SQL不是用于复杂分析,而是主要用于导入(从现有表)和导出(到新表)数据,还有更多例如将数据合并到 - 例如 - 连接表.
有人可以帮我划清界限吗?所以我知道何时切换到C++?当然,性能也是一个问题.
什么迹象表明事情在SQL中变得复杂?或者我可能只是采用错误的方法来设计查询.那我在哪里可以找到教程,书籍......采取更好的方法?
我希望这不是太模糊.我真的有点失落.
我想为Iphone制作一个吉他调音器应用程序.我的目标是找到吉他弦产生的声音的基本频率.我使用了Apple提供的aurioTouch样本中的一些代码来计算频谱,我找到了幅度最高的频率.它适用于纯声音(只有一个频率的声音),但对于来自吉他弦的声音,它会产生错误的结果.我读过这是因为吉他弦产生的泛音可能比基本弦更高.如何找到基频,以便它适用于吉他弦?C/C++/Obj-C中是否有用于声音分析(或信号处理)的开源库?
使用下面的代码,问题是:
如果使用"returnIntVector()"函数,向量是否从本地复制到"外部"(全局)范围?换句话说,与"getIntVector()" - 函数相比,它是一个更多的时间和内存消耗变化吗?(但提供相同的功能.)
#include <iostream>
#include <vector>
using namespace std;
vector<int> returnIntVector()
{
vector<int> vecInts(10);
for(unsigned int ui = 0; ui < vecInts.size(); ui++)
vecInts[ui] = ui;
return vecInts;
}
void getIntVector(vector<int> &vecInts)
{
for(unsigned int ui = 0; ui < vecInts.size(); ui++)
vecInts[ui] = ui;
}
int main()
{
vector<int> vecInts = returnIntVector();
for(unsigned int ui = 0; ui < vecInts.size(); ui++)
cout << vecInts[ui] << endl;
cout << endl;
vector<int> vecInts2(10);
getIntVector(vecInts2);
for(unsigned int ui …Run Code Online (Sandbox Code Playgroud) 我试图尽可能地缩小问题的范围,但它仍然很有用.这是不能按我想要的方式运行的查询:
SELECT *, MAX(tbl_stopover.dist)
FROM tbl_stopover
INNER JOIN
(SELECT edges1.id id1, edges2.id id2, COUNT(edges1.id) numConn
FROM tbl_edges edges1
INNER JOIN tbl_edges edges2
ON edges1.nodeB = edges2.nodeA
GROUP BY edges1.id HAVING numConn = 1) AS tbl_conn
ON tbl_stopover.id_edge = tbl_conn.id1
GROUP BY id_edge
Run Code Online (Sandbox Code Playgroud)
这是我得到的:
|id | edge | dist | id1 | id2 | numConn | MAX(tbl_stopover.dist) |
------------------------------------------------------------------
|2 | 23 | 2 | 23 | 35 | 1 | 9 |
|4 | 24 | 5 | 24 | …Run Code Online (Sandbox Code Playgroud) 我正在审查某人的代码,开发人员已将一个结构分配给另一个结构。该结构包含一个 char 数组。不知何故,这“有效”,这意味着结构体 A 中的 char 数组确实被复制到结构体 B (不是通过引用)。我完全困惑了。可以给我解释一下吗?我写了一个小程序来说明这个“问题”。
#include <stdio.h>
#include <string.h>
/**************************************
* some define and typedef for later
**************************************/
#define MAX_LEN (80)
typedef struct month_s
{
char name[MAX_LEN];
} month_st;
/**************************************
* This bit is clear.
**************************************/
static void usingString()
{
char mCur[MAX_LEN] = {"Jan"};
char mNext[MAX_LEN] = {"Feb"};
/** this doesn't compile (of course) */
//mCur = mNext;
/** we need a pointer/reference */
char *pmCur = &mCur[0];
/** however now we "copy by reference"...*/
pmCur …Run Code Online (Sandbox Code Playgroud) 我有一个使用Android MediaPlayer类的实现.我不断碰到各种错误,更改代码,碰到另一个错误.根据错误,我从MediaPlayer收到报告的LogCat错误消息:
" xyz在状态x中调用".
我不想为我碰到的每个bug发布一个帖子,我宁愿把它全部搞定,并自己修复bug.但我找不到任何可以告诉我哪个州号映射到哪个州的文件,正如MediaPlayer在线文档中所描述的那样.
有人可以发布这样的列表的链接,或在这篇文章中提供列表吗?我想我不会是唯一会欣赏这一点的人.
#include <iostream>
using namespace std;
class CClass
{
private:
friend class CFriend;
static void privateFunc(){std::cout << "privateFunc" << std::endl;};
};
class CFriend
{
public:
void privateFunc(){privateFunc();};
};
int main(int argc, char* argv[])
{
CFriend b;
b.privateFunc();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
此代码编译,但使用gcc编译器或http://www.ideone.com/程序崩溃.这是编译器错误还是我需要了解更多有关朋友类的信息?