小编use*_*897的帖子

C++ Sqlite 选择语句并存储为向量

我想像这样从 abe_account 中选择 *

sqlite> select * from abe_account;
admin|Peter John|admin_account|password
Run Code Online (Sandbox Code Playgroud)

但我想在 C++ 中做到这一点并返回每个元素,例如

admin as vector x[0]
Peter John as vector x[1]
admin_account as vector x[2]
password as vector x[4]
Run Code Online (Sandbox Code Playgroud)

然后在我关闭 sqlite3_close(db) 时在外面使用它

如 cout << x[0] << endl;

我该怎么做,我试图 cout << str << endl;

但它什么也不打印。

下面的代码是我自己尝试的:

#include <iostream>
#include <sqlite3.h>

//g++ -o test test.cpp -lsqlite3
using namespace std;

int main()
{

    sqlite3 *db;
    sqlite3_stmt * stmt;

    if (sqlite3_open("abeserver.db", &db) == SQLITE_OK)
    {
    sqlite3_prepare( db, "SELECT * from abe_account;", …
Run Code Online (Sandbox Code Playgroud)

c++ sqlite

3
推荐指数
1
解决办法
1万
查看次数

C++ substr用法返回错误

第一个问题

我试着做以下事情

myfile.open("file.txt");
    while(!myfile.eof())
    {
getline(myfile,sline);
delimiter = sline.substr(2,1);
    }

cout << "Delimiter is " << delimiter << endl;
Run Code Online (Sandbox Code Playgroud)

我的file.txt是这样的

AD#Andorra#AN#AD#AND#20.00#Andorra la Vella#Europe#Euro#EUR#67627.00
AE#United Arab Emirates#AE#AE#ARE#784.00#Abu Dhabi#Middle East#UAE Dirham#AED#2407460.00
Run Code Online (Sandbox Code Playgroud)

它在运行时返回错误代码

terminate called after throwing an instance of 'std::out_of_range'
  what():  basic_string::substr
Aborted (core dumped)
Run Code Online (Sandbox Code Playgroud)

我希望将值#作为我的分隔符,

第二个问题

我的.h文件得到了这个声明

#define LINE_DATA_DELIMITER     ","
Run Code Online (Sandbox Code Playgroud)

我可以将LINE_DATA_DELIMITER重新定义为"#",而不是使用"#",我可以使用变量分隔符的值来定义.

更新:问题1已解决..我需要第二个问题的帮助谢谢!

c++

2
推荐指数
1
解决办法
317
查看次数

C++ - Pthread如何发送值

我如何发送std::string到我的线程?

这是我的代码:

void* sendReminder(void*) 
{
    system("echo 'hello' >> buffer.txt");    
}

int main()
{
    string str1 = "somevalue";
    pthread_t t1;
    pthread_create(&t1, NULL, &sendReminder, NULL);
}
Run Code Online (Sandbox Code Playgroud)

c++ multithreading pthreads

2
推荐指数
1
解决办法
2533
查看次数

C++关于为Vector <Point> myVariable赋值

C++关于为Vector myVariable赋值

嗨,大家好.

我有这个结构

struct Point
{
int x,y;
}
Run Code Online (Sandbox Code Playgroud)

在我的main.cpp中我得到了类似的东西

int main()
{
vector<Point> myPoints;

myPoints[0].x = 1;
myPoints[0].y = 1;

myPoints[1].x = 2;
myPoints[1].x = 2;

return 0;
}
Run Code Online (Sandbox Code Playgroud)

我得到分段核心转储,设置值向量的元素有什么问题.

谢谢你的指导!

c++

0
推荐指数
1
解决办法
792
查看次数

C ++如何使用模板对向量进行排序

C ++如何使用模板对向量进行排序

大家好,谢谢您看我的问题。

我得到了一个Templates.h文件,它就是这种方式。

/* Template Less Than */

template<typename T>
bool lessThan(T a,T b)
{
return a<b;
}

/* Template greater Than */

template<typename T>
bool greaterThan(T a,T b)
{
return a>b;
}

/* Template Equals */

template<typename T>
bool equals(T a,T b)
{
return a==b;
}
Run Code Online (Sandbox Code Playgroud)

然后我上了这堂课

Map2D
Run Code Online (Sandbox Code Playgroud)

关于Map2D

class Map2D
{
protected:
int x;
int y;

public:
Map2D();
Map2D(int,int);
int getX();
int getY();
};
Run Code Online (Sandbox Code Playgroud)

在我的main.cpp中,我得到了Map2D的向量类

vector<Map2D> map2d;
Run Code Online (Sandbox Code Playgroud)

因此,现在我需要按X升序对它进行排序..我如何利用模板文件对它的X升序进行向量排序。。考虑一下以后我需要重载另一个以降序。

通常我会用

sort(map2d.begin(),map2d.end(),sortByX);
Run Code Online (Sandbox Code Playgroud)

并且sortByX将是带有重载其()运算符的结构。

但是现在的问题是,因为我得到了一个小于和大于的模板。如何使用升序对X进行排序,然后使用Templates.H的模板泛型函数对另一个X进行降序排序。

更新:

我认为我需要重载Map2D运算符>,<和==

但是我的问题是如何借助MyTemplates.h函数(如lesserThan,GreaterThan,equals)来重载它

谢谢。

c++ sorting templates vector

0
推荐指数
1
解决办法
6307
查看次数

标签 统计

c++ ×5

multithreading ×1

pthreads ×1

sorting ×1

sqlite ×1

templates ×1

vector ×1